Форум сайта python.su
Как добавить метод, определенный в одном классе, к другому, существующему классу. Например:
class Z1(object):
def __init__(self):
self.a=123
class Z2(object):
def mm(self):
print self.a
Z1.m1=Z2.mm
z=Z1()
z.m1()
def mm(self):
print self.a
Z1.m1=mm
z=Z1()
z.m1()
Офлайн
Все, я уже нашел как:
Z1.m1=Z2.mm.__func__
Офлайн
Вы не должны хотеть этого делать.
Офлайн
DaevaornВ смысле?
Вы не должны хотеть этого делать.
Офлайн
Если у вас возникла данная задача, что вы что-то делаете или проектируете не так.
Офлайн
Это не правильно и не очень сочетается с дизайном языка.
ИМХО, ты что-то перемудрил и надо искать другой подход.
Офлайн
Вообще-то это для DSL. Например:
class Car(object):
class Motor(DefaultMotor):
objem=5
class Car2(Car):
class Motor:
objem=4
Отредактировано (Июнь 15, 2010 15:01:53)
Офлайн
gkraserЭто хороший повод подумать над другими вариантами вашего “языка”.
Как-то вот для такого…
Офлайн
Хм… Читать про метаклассы, наверное. В этом случае, как мне кажется, должно быть в тему.
Хотя фиг его знает… Надо ближе смотреть.
Офлайн
может использовать один класс мотор но зашить в него разные режимы (тип мотора)
Офлайн