2017-12-04 18 views
0

수퍼 클래스 속성을 무시하려면 어떻게해야합니까? 아래 예제에서는 name에 다른 값을 사용하고 싶습니다.수퍼 클래스 __init__ 인수를 재정의하는 방법은 무엇입니까?

class A: 
    def __init__(self,name): 
     self.name=name 

class B(A): 
    def __init__(self, config, address, phone): 
     super(B, self).__init__(name) 
     self.address=address 
     self.phone=phone 
     self.config=config 
     self.name=self.config.name + "__value_only" 
+0

이름은 변수 이름입니다. 상속 된 클래스에서 기본 클래스의 속성 이름을 변경할 수는 없습니다. 달성하려는 것은 무엇입니까? – Vinny

+0

'config.name + __value_only'을 수퍼 클래스 생성자 – Manjunath

+1

@Vinny에 전달하면 실제로 완벽하게 처리 할 수 ​​있습니다. – jkm

답변

1

원하는 "기타"값을 super(...).__init__()으로 전달하기 만하면됩니다. 또한 예제의 name은 클래스가 아니라 인스턴스 속성 인 인스턴스 속성입니다.

class B(A): 
    def __init__(self, config, address, phone): 
     super(B, self).__init__(config.name + "__value_only") 
     self.address=address 
     self.phone=phone 
     self.config=config 
+0

은이 방법을 정의 특히 문제가 있나요 config name = self.config.name + "__value_only" super (B, self) .__ init __ (name) ' – user3327034

+0

아니요, 괜찮을 것입니다. – schwobaseggl

+0

위대한. @schwobaseggl 확인 주셔서 감사합니다. – user3327034