に結合していない方法で親クラスにアクセスするには、私の中に結合していないメソッドと静的クラスで、このクラスを持っていますClassB.getFoo()を明示的に実装せずにClassB.Fooを返すには? を返すと、ClassA.Foo
を書くことは明らかにうまくいかない。継承とパイソン
Q
継承とパイソン
0
A
答えて
4
あなたgetFoo
クラスメソッドでなければなりません:
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!
この
は、Python言語の美しさを実証 - 同じ問題を解決するための複数の方法が通常あります...それだけです関連する問題
- 1. パイソン - 継承されたメソッド
- 2. クラス継承とインターフェイス継承
- 3. 反復子継承と継承* this
- 4. Entity Frameworkとの継承継承
- 5. 継承とインライン?
- 6. 継承とナビゲーションプロパティ
- 7. DataContractと継承?
- 8. 継承とプロトタイプチェーン
- 9. pyQt4と継承
- 10. フラグメントと継承
- 11. QMetaTypeと継承
- 12. と継承
- 13. 継承とDapper.net
- 14. テンプレートと継承
- 15. QSharedDataと継承
- 16. オブジェクトグラフと継承
- 17. ジェネリックインターフェイスと継承
- 18. 継承とインターフェイス
- 19. 継承とジェネリック
- 20. ポリモーフィズムと継承
- 21. 継承とモジュールパターン
- 22. キャストオブジェクトと継承
- 23. コピーコンストラクタと継承
- 24. Doctrine2と継承
- 25. インジェクションと継承
- 26. 継承とMonohehaviour
- 27. 継承とインターフェイス
- 28. 継承とデフォルトコンストラクタ
- 29. UIViewControllerと継承
- 30. オーバーライドと継承
。ありがとう。 – Chris