Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2010 01:07:05

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

фокус-покус

>>> 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'
>>>



Офлайн

#2 Дек. 17, 2010 06:21:37

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

фокус-покус

appetito
>>> a.getx, b.getx = b.getx, a.getx
Ну вот здесь вы меняет методы у объектов. Какое зверское самоубийство :)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Дек. 17, 2010 08:19:12

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

фокус-покус

Если бы методы просто менялись… В экземпляр записывается bound method - а до того его не было и работал class descriptor



Офлайн

#4 Фев. 6, 2011 19:27:41

kin4ev
От:
Зарегистрирован: 2011-02-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

фокус-покус

В принципе фокус считаю удавшимся, appetito, прими поздравления и хвалу.



Офлайн

#5 Фев. 6, 2011 20:30:21

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

фокус-покус

Не надо делать такие фокусы, особенно если не уверен насчет того, что же действительно происходит внутри.



Офлайн

#6 Фев. 6, 2011 20:40:02

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

фокус-покус

А что же в действительности происходит внутри?



Офлайн

#7 Фев. 6, 2011 21:19:43

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

фокус-покус

Ответ уже прозвучал:

Андрей Светлов
Если бы методы просто менялись… В экземпляр записывается bound method - а до того его не было и работал class descriptor
Более детально ознакомится можно здесь.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version