같은 방식으로 다른 클래스에서 사용하려는 2 세트의 속성이 있습니다. 나는 클래스가 super
통화 및 불필요한 합병증을 방지하기 위해 속성으로이 세트로 혼합하는 것을 시도하고있다 :Python 3의 다른 클래스에서 동일한 클래스 속성을 사용하는 방법은 무엇입니까?
class Base:
def printAttr():
print(attr)
class MixIn1:
attr = "Monty"
class MixIn2:
attr = "Python"
class Combo1(Base, MixIn1):
pass
class Combo2(Base, MixIn2):
pass
c1 = Combo1()
print(c1.attr) # it is assigned
c1.printAttr()
결과는 NameError: name 'attr' is not defined
입니다. 분명히 MixIn1.attr
을 명시 적으로 호출해도 작동하지만 클래스 자체에이 코드를 추가하는 것은 동일합니다.
attr
서로 다른 경제적 처리 방식을 사용하려면 어떻게해야합니까?
오류가 표시된 코드와 일치하지 않습니다. –
실제 코드를 표시하십시오. 'printAttr'가'self' 매개 변수를 잃어 버렸기 때문에 여러분이 게시 한 코드는 TypeError를 던질 것입니다; 'attr'가 그 메소드에서 정의되지 않았기 때문에 NameError를 던질 것입니다. –
또한'printAttr' 메소드에'self' 매개 변수가 없습니다. –