나는 Do not Repeat Yourself (DRY) 원리와 매우 흡사하며, 그것의 한 예로서, 나는 그 정의 안에서 클래스의 이름을 사용하는 것을 좋아하지 않는다. 클래스 이름을 변경하려면 클래스 정의 내에서 모든 항목을 변경해야합니다.Python 2.7에서 DRY가 아닌 수퍼 클래스 속성에 액세스합니까?
이제 docs에서 읽은 수퍼 클래스 속성에 액세스하는 일반적인 관용구가 다음과 같습니다.
class A(object):
def method(self):
print('Hi!')
class B(A):
def method(self):
super(B, self).method() # fixed reference to B, not DRY
에
B.
를 서브 클래스 때 대신 무한 재귀으로 이어질 것 "유형 (자기)"또는 "자기 .__ class__"를 사용하여 같은 클래스 이름, 나는이 경우 DRY를 건너해야합니까? 아니면 하위 클래스의 정의 내에서 하위 클래스를 참조하는 다른 마법 속성이 있습니까?
문서 참조 주셔서 감사합니다, Tom. 그러나 이것은 "B"의 클래스 정의 안에있는 "B"의 수를 줄이지 만, 여전히 DRY가 아닙니다. 지금까지 다른 대답이 없었기 때문에, 필자가 작성한대로 불가피한 것으로 받아 들일 것입니다. – virtualnobi