if isinstance(Tex, list):
приму к сведененью, спасибо.
Проверил, работает:
class Obj():
def __init__(self, Tex):
if isinstance(Tex, list):
self.render = self.renderDynamic
else:
self.render = self.renderStatic
def renderStatic(self):
print ("rednerstatic")
def renderDynamic(self):
print ("rednerdynamic")
a=Obj(None)
#a=Obj(list())
a.render()
blindvic, то что надо! спасибо, правда и тут без проблем не обошлось.
в своёй програмке я часто использую deepcopy(например есть класс шаблонного взрыва или эффекта, и чтоб не создавать каждый раз новый взрыв я использую deepcopy эталонного и меняю ему стартовые координаты). Не уверен, но думаю метод копирования обьекта всегда быстрее его создания с нуля.
Наверное прийдется написать свой метод копирования атрибутов класса, ибо deepcopy не нравится приведённый вами метод(но это не критично, прорвёмся). Еще раз спасибо.
from copy import *
class Obj():
def __init__(self, Tex):
if isinstance(Tex, list):
self.render = self.renderDynamic
else:
self.render = self.renderStatic
def renderStatic(self):
print ("rednerstatic")
def renderDynamic(self):
print ("rednerdynamic")
a=Obj(None)
a=Obj(list())
a.render()
b = deepcopy(a)
ошибка под вторым спойлером
File "klevyj_priem.py", line 19, in <module>
b = deepcopy(a)
File "/usr/lib/python2.6/copy.py", line 162, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.6/copy.py", line 292, in _deepcopy_inst
state = deepcopy(state, memo)
File "/usr/lib/python2.6/copy.py", line 162, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.6/copy.py", line 255, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.6/copy.py", line 189, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.6/copy.py", line 323, in _reconstruct
y = callable(*args)
File "/usr/lib/python2.6/copy_reg.py", line 93, in __newobj__
return cls.__new__(cls, *args)
TypeError: instancemethod expected at least 2 arguments, got 0
Пользователь решил продолжить мысль [time]Wed Sep 8 01:32:54 2010[/time]:
и, ради углубления в язык, найди отличия и пойми их:
http://diveintopython.org/object_oriented_framework/defining_classes.html
Отличия нашёл, понять на данном этапе врядтли смогу, уж сильно я зелёный в программировании, но постараюсь в перспективе.