반응형
3 단계의 클래스 상속이있는 코드로 작업하고 있습니다. 가장 낮은 수준의 파생 클래스에서 계층 구조 2 수준 위로 메서드를 호출하는 구문은 무엇입니까? 슈퍼 슈퍼 콜? "중간"클래스는 호출해야하는 메서드를 구현하지 않습니다.
해결 방법
글쎄, 이것은 그것을하는 한 가지 방법입니다.
class Grandparent(object):
def my_method(self):
print "Grandparent"
class Parent(Grandparent):
def my_method(self):
print "Parent"
class Child(Parent):
def my_method(self):
print "Hello Grandparent"
Grandparent.my_method(self)
아마도 당신이 원하는 것은 아니지만 내가 착각하지 않는 한 최고의 파이썬입니다. 당신이 요청하는 것은 반 비단뱀처럼 들리며 당신은 우리가 당신에게 일을하는 행복한 비단뱀 방식을 제공하기 위해 왜 그것을하고 있는지 설명해야 할 것입니다.
또 다른 예, 아마도 원하는 것 (귀하의 의견에서) :
class Grandparent(object):
def my_method(self):
print "Grandparent"
class Parent(Grandparent):
def some_other_method(self):
print "Parent"
class Child(Parent):
def my_method(self):
print "Hello Grandparent"
super(Child, self).my_method()
보시다시피 Parent
는 my_method
를 구현하지 않지만 Child
는 여전히 super를 사용하여 Parent
메서드를 가져올 수 있습니다. code> "sees", 즉 Grandparent
의 my_method
.
참조 페이지 https://stackoverflow.com/questions/31232098
반응형
'파이썬' 카테고리의 다른 글
파이썬 Windows에서 pip 설치 액세스가 거부되었습니다. (0) | 2020.11.22 |
---|---|
파이썬 Python : 빈 목록에서 팝 (0) | 2020.11.22 |
파이썬 numpy 배열의 Python numpy 배열 (0) | 2020.11.21 |
파이썬 django.core라는 모듈이 없습니다. (0) | 2020.11.21 |
파이썬 별도의 스레드에서 플라스크 애플리케이션 시작 (0) | 2020.11.21 |
댓글