我正在尝试验证 2012 年 11 月 1 日 Python 教程 2.7.3 版第 9 章:类,第 66 页最后一行(来源)中列出的实例属性和类属性之间的区别:
实例对象的有效方法名称取决于其类。根据定义,作为函数对象的类的所有属性都定义了其实例的相应方法。所以在我们的例子中,xf 是一个有效的方法引用,因为 MyClass.f 是一个函数,但 xi 不是,因为 MyClass.i 不是。但是 xf 与 MyClass.f 不同——它是一个方法对象,而不是一个函数对象。
我有这个:
class MyClass:
"""A simple example class"""
i = 12345
def f():
return 'hello world'
然后我这样做:
>>> x = MyClass()
>>> x.f
<bound method MyClass.f of <__main__.MyClass instance at 0x02BB8968>>
>>> MyClass.f
<unbound method MyClass.f>
>>> type(MyClass.f)
<type 'instancemethod'>
>>> type(x.f)
<type 'instancemethod'>
注意两者的类型都是x.f
instancemethod MyClass.f
。类型没有区别,但教程另有说明。有人可以澄清一下吗?