appetito
Дек. 17, 2010 01:07:05
>>> class C:
def __init__(self, x):
self.x = x
def getx(self):
return self.x
>>> a=C('A')
>>> b=C('B')
>>> a.getx, b.getx = b.getx, a.getx
>>> a.getx()
'B'
>>> b.getx()
'A'
>>> a.x
'A'
>>> b.x
'B'
>>>
PooH
Дек. 17, 2010 06:21:37
appetito
>>> a.getx, b.getx = b.getx, a.getx
Ну вот здесь вы меняет методы у объектов. Какое зверское самоубийство :)
Андрей Светлов
Дек. 17, 2010 08:19:12
Если бы методы просто менялись… В экземпляр записывается bound method - а до того его не было и работал class descriptor
kin4ev
Фев. 6, 2011 19:27:41
В принципе фокус считаю удавшимся, appetito, прими поздравления и хвалу.
regall
Фев. 6, 2011 20:30:21
Не надо делать такие фокусы, особенно если не уверен насчет того, что же действительно происходит внутри.
Carzil
Фев. 6, 2011 20:40:02
А что же в действительности происходит внутри?
regall
Фев. 6, 2011 21:19:43
Ответ уже прозвучал:
Андрей Светлов
Если бы методы просто менялись… В экземпляр записывается bound method - а до того его не было и работал class descriptor
Более детально ознакомится можно
здесь.