2012年11月1日付けのPythonチュートリアルリリース2.7.3、第9章:クラス、66ページの最後の行(ソース)でレイアウトされているインスタンス属性とクラス属性の違いを確認しようとしています。
インスタンスオブジェクトの有効なメソッド名は、そのクラスによって異なります。定義上、関数オブジェクトであるクラスのすべての属性は、そのインスタンスの対応するメソッドを定義します。したがって、この例では、MyClass.fは関数であるため、xfは有効なメソッド参照ですが、MyClass.iは関数ではないため、xiはそうではありません。ただし、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
との両方のタイプMyClass.f
がinstancemethodであることに注意してください。タイプに違いはありませんが、チュートリアルではそうではないと述べています。誰かが明確にできますか?