4
오버라이드가 발생하지 않을 수 있습니까? 예를 들어 :수퍼 클래스와 같은 이름의 서브 클래스 변수
class A:
def __init__(self, name):
self.name = name
class B(A):
def __init__(self, name):
A.__init__(self, name)
self.name = name + "yes"
는 클래스 A의과는 독립적이어야하는 클래스 B의 self.name
수있는 방법이 있습니까, 아니면 다른 이름을 사용하는 것이 필수입니다?
귀하의 질문이 확실하지 않습니다. 클래스 B의 _ 인스턴스 _가'self.name'에 대해 두 개의 값을 가질 수 있는지 묻지 않는 한, 여기에있는 것은 유효한 코드입니다. 그 질문에 대한 대답은 '아니오'입니다. –
@ g.d.d.c 그게 정확히 내가 원하는거야. 클래스 B의 인스턴스가 슈퍼 클래스의 이름을 유지하면서 고유 한 이름 값을 가질 수 있는지 여부 확인 감사합니다! – idlackage
OP의 예에 대한 초보자 질문 : B .__ init__에서 그는 예상했던 것 대신 A .__ init__을 호출합니다. self .__ init__. 전자는 * class * 변수 이름을 설정합니다. 맞습니까? 인스턴스가 __init __ ...의 새로운 정의를 가지고 있지 않으면 다시 동일해야합니다. –