xakzona
Фев. 28, 2010 16:00:39
Как заменить метод класса?
к примеру есть класс Edit, у которого объявлен метод onclick(self)
Как мне его описать, не применяя наследование этого класса
bazooka
Фев. 28, 2010 17:00:51
>>> class A:
def f(self, x):
print(1)
>>> def f(a, x):
print(x)
>>> A.f = f
>>> b = A()
>>> b.f(2)
2
Kogrom
Фев. 28, 2010 19:46:10
То, что написал bazooka соответствует вопросу, но таит в себе некоторую опасность. Старые объекты класса A после такого переопределения внезапно начнут выполнять не то, что от них ожидали.
Думаю, что лучше замещать метод у объекта, а не класса. А в классе замещать наследованием.
bazooka
Фев. 28, 2010 21:16:48
тогда будут обьекты одного класса ведущие сибя паразнаму
Kogrom
Фев. 28, 2010 22:02:55
И это будет хорошо. Каждый юнит получает свои индивидуальные скиллы :)
Хотя в играх бывает и так, что разом все юниты получают апгрейд. Но это оторвано от реальной жизни.