의 속성에 액세스 할 수 없습니다는이 코드를 실행하면, 나는 오류 "AttributeError를 'NoneType'객체 '테스트'에는 속성이 없습니다"얻을 파이썬
누군가가 정확히 상속됩니다 무엇을 나에게 설명 할 수
class BaseClass:
def __new__(self, number):
self.test = 1
class InheritedClass(BaseClass):
pass
instance = InheritedClass(1)
print(instance.test)
기지에서? 파이썬 2와 3은 차이가있을 것입니다. 왜냐하면 "테스트"를베이스 클래스의 속성 필드에 넣어서 파이썬 2에서는 액세스 할 수 있지만 3에서는 액세스 할 수 없기 때문입니다.
저는 이것이 중복 답변에서 논의되지 않았다고 생각합니다. 파이썬 2와 3 사이의 차이점은'__new __()'은 새로운 스타일 클래스, 즉'object'에서 명시 적으로 상속받은 클래스에만 존재한다는 것입니다. 코드에서'__new __()'는'None'을 반환하기 때문에 인스턴스가 없습니다.'__new __()'가 인스턴스를 반환해야하기 때문에'__new __()'도 Python 2에서 호출되지 않습니다. 이 후자의 답변에서 중복 답변을 자세히 설명합니다. – mhawke