この質問は単なる好奇心からです。
Python のオブジェクト モデルのドキュメントを読んでいるときに、クラス メソッドの ID を少し試してみることにしました。この動作を見つけました。
Python 3.2.2 (default, Sep 4 2011, 09:07:29) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> class A():
def a(self):
pass
>>> id(A().a)
54107080
>>> id(A().a)
54108104
>>> id(A().a)
54107080
>>> id(A().a)
54108104
>>>
>>> id(A().a)
54108104
>>>
>>> id(A().a)
54108104
>>> id(A().a)
54107080
>>>
メソッドの ID は、行のパリティによって変わります!
私は実際に同じクラスのインスタンスをいくつか作成し、それらが同じメソッドオブジェクトを持っているかどうかを確認したかったのですが、それらがまったく同じであるか、毎回変更されると予想していましたが、メソッド ID がインタプリタの行が偶数かどうかに関係します! 何か案は?
注:ドキュメントとインタープリターのバージョンが一致していないことはわかっています。たまたまWindowsを使用していて、3.2しかインストールされていません