Wpis z mikrobloga

@trzy_razy_rzezucha:

Adres instancji (obiektu) tej klasy.

>>> class X:
... foo = lambda *_, **__: ...
...
>>> A = X()
>>> A
<__main__.X object at 0x7fa441e08b50>
>>> A.foo
of <__main__.X object at 0x7fa441e08b50>>

Pierwotna kopia funkcji w klasie jest pojedyncza, metoda to ta funkcja z przywiązaniem do danego obiektu klasy (taki mały obiekt z referencją na obiekt i tę kopię obiektu funkcji).

Python tworzy te obiekty i ewentualne kopie funkcji
Oczywiście o jednej pierwotnej kopii funkcji świadczą też raz wyliczane argumenty domyślne (częsty problem początkujących - referencje obiektów jako argumenty domyślne).
Python musiałby to wszystko przeliczać wielokrotnie, dlatego kopie funkcji są robione "on demand", a same referencje zachowane. To zwykłe słowniki pod spodem są.