에서 언 바운드 방법에 액세스 할 부모 클래스 I는 언 바운드 방법 및 내부 정적 클래스와이 클래스가() ClassB.getFoo()를 명시 적으로 구현하지 않고 ClassB.Foo를 반환 할 수 있습니까? 을 반환하면 ClassA.Foo
을 작성하는 것이 분명히 작동하지 않습니다.상속 및 파이썬
Q
상속 및 파이썬
0
A
답변
4
귀하의 getFoo
classmethod해야한다 :
class ClassA():
class Foo():
pass
@classmethod
def getFoo(cls):
return cls.Foo
클래스 메소드가 자신의 첫 번째 인수로 자신의 클래스를 전달, 인스턴스 메소드는 첫 번째 인수로 인스턴스를 전달하는 방식과 비슷합니다. ClassA를 하위 클래스로 만들면 적절한 클래스가 전달됩니다.
0
@Ned Batchelder의 답변 외에도 정적 방법을 사용하여 비슷한 목표를 달성 할 수 있습니다.
class ClassA():
class Foo():
def fooTest(self):
print("Hello from {}!".format(self.__name__))
@staticmethod
def getFoo():
return ClassA.Foo
class ClassB(ClassA):
pass
그리고 테스트와 : 나에게
>>> Foo = ClassB.getFoo()
>>> foo = Foo()
>>> foo.fooTest()
Hello from Foo!
이
는 파이썬 언어의 아름다움을 보여줍니다 - 같은 문제를 해결하는 여러 가지 방법이 일반적이 있습니다 ... 그것 뿐이다관련 문제
- 1. 상속 및 파이썬
- 2. 상속, 파이썬 및 wxWidget
- 3. 파이썬 데코레이터 및 클래스 상속
- 4. 파이썬 상속
- 5. 파이썬 : 상속 또는 구성
- 6. 상속 및 기본 클래스 메서드 호출 파이썬
- 7. 파이썬 : 변수, 상속 및 기본 인수
- 8. 부스트 :: 파이썬, 정적 팩토리 및 상속
- 9. 클래스 속성 상속 (파이썬)
- 10. 파이썬 기본 상속?
- 11. 파이썬 클래스 속성 상속
- 12. 파이썬 다중 상속 속성
- 13. 파이썬 상속 - 프레임
- 14. 파이썬 상속. 왜 그렇게 지저분한가?
- 15. 및 상속
- 16. boost :: python 커스텀 예외 내보내기 및 파이썬 예외로부터 상속
- 17. 순수 가상 상속, 다중 상속 및 C4505
- 18. C# 상속 및 상속 계층 구조 캐스팅
- 19. 문제 양식 상속 및 메서드 상속
- 20. 파이썬 방법을 확인 순서와 여기에 다이아몬드 상속
- 21. 파이썬 상속 문제에 전화 해야지 객체 다르게
- 22. 상속 및 getter 및 setter
- 23. 템플릿 및 상속 문제!
- 24. 플래시 패키지 및 상속
- 25. WCF 및 상속
- 26. 템플릿 및 상속
- 27. 클래스 상속 및 캐스팅
- 28. 템플릿, 상속 및 운영자
- 29. C++ 템플릿 및 상속
- 30. java JAXB 및 상속
. 감사. – Chris