아래에는 내가하는 일에 대한 아주 간단한 예가 있습니다. 나는 다른 클래스와 함께 HTMLDecorator를 사용할 수 있기를 원한다. 데코레이터라고하는 사실을 무시하십시오, 그것은 단지 이름입니다.기존 인스턴스에서 메소드를 단순히 상속 할 수 있습니까?
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()
출력 :
Traceback (most recent call last): File "html.py", line 21, in print HTMLDecorator(inst_x).html() TypeError: default __new__ takes no parameters
나는 가능한 할 노력하고있어 무엇인가? 그렇다면, 내가 뭘 잘못하고 있니?