【发布时间】:2018-02-26 01:08:24
【问题描述】:
这是一个编程语言概念问题,例如类似于 Scott 的 Programming Language Pragmatics 水平。
在Python中,某些对象的类是根据某些具有特殊名称的方法来定义的,例如,
- 描述符类定义为具有名为
__get__、__set__或__delete__()的方法的类。 - 迭代器类被定义为具有名为
__next__的方法的类。
问题:
- 在编程语言设计中,Python中的语言特性是什么?是鸭子打字吗?
- 语言功能在底层是如何工作的?
-
在 C++、C# 和 Java 中,描述符的类和 迭代器的类将被定义为一些的子类 特定的课程? (类似于C#接口
IDisposable)在 Python 中,
描述符的类可以定义为某个特定类的子类吗?
可以将迭代器的类定义为某个特定类的子类吗?
【问题讨论】:
-
“一个迭代器的类被定义为一个有一个名为
__next__的方法的类” 这是不正确的,或者至少措辞不好。迭代器是具有__next__函数的对象。迭代器的类一点也不重要。这是鸭子打字。
标签: python programming-languages computer-science typing