클래스 인 클래스 Klass
이 있습니다. 내가 부모 클래스에서 동일한 속성의 수정 된 버전 인 클래스 속성 my_list
갖고 싶어하는 그 서브 클래스 SubKlass
,이 : 그래서하위 클래스 본문에서 상위 클래스 속성에 액세스
class Klass():
my_list = [1, 2, 3]
class SubKlass(Klass):
my_list = Klass.my_list + [4, 5] # this works, but i must specify parent class explicitly
#my_list = super().my_list + [4, 5] # SystemError: super(): __class__ cell not found
#my_list = my_list + [4, 5] # NameError: name 'my_list' is not defined
print(Klass.my_list)
print(SubKlass.my_list)
을하지 않고 부모 클래스의 속성에 액세스하는 방법은 무엇입니까 이름을 지정 했습니까?
UPDATE : http://bugs.python.org/issue11339 :
파이썬 이슈 트래커에 버그가 있습니다. 어느 시점에서 solved이되기를 바랍니다.
메타 클래스는 3 번을 가로 챌 것이며'type'에 전달하기 전에'bases'를 수정할 수도 있습니다. 그래, 할 수 없어. – delnan
예, 맞는 말이군요. 나는 그 자신을 (메타 클래스를 통해) 생각했지만, 계승 된 목록을 확장하는 것은 단지 예일 뿐이다. 목록을 확장하는 대신 목록에서 일부 항목을 삭제하려고 할 수 있습니다. 아니면 목록이 아니라 다른 유형 ... 광범위한 답변을 주셔서 감사합니다! – warvariuc
루비에서 완전히 정의되기 전에 클래스에 액세스 할 수 있다고 들었습니다 ... – warvariuc