Aşağıda Yapmaya çalıştığım şeyin çok basit bir örneğim var. HTMLDecorator'ı başka bir sınıfla birlikte kullanabilmek istiyorum. Dekoratör denilen şeyi görmezden gel, sadece bir isim.Varolan bir örnekten yöntemleri nasıl basitçe alabilirim?
import cgi
class ClassX(object):
pass # ... with own __repr__
class ClassY(object):
pass # ... with own __repr__
inst_x=ClassX()
inst_y=ClassY()
inst_z=[ i*i for i in range(25) ]
inst_b=True
class HTMLDecorator(object):
def html(self): # an "enhanced" version of __repr__
return cgi.escape(self.__repr__()).join(("<H1>","</H1>"))
print HTMLDecorator(inst_x).html()
print HTMLDecorator(inst_y).html()
wrapped_z = HTMLDecorator(inst_z)
inst_z[0] += 70
wrapped_z[0] += 71
print wrapped_z.html()
print HTMLDecorator(inst_b).html()
Çıktı:
Traceback (most recent call last): File "html.py", line 21, in print HTMLDecorator(inst_x).html() TypeError: default __new__ takes no parameters
Mümkün yapmaya çalıştığım şey var mı? Eğer öyleyse, ne yapıyorum yanlış?