Python のサブクラスはグローバル関数をオーバーライドできますか?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-18 10:46:14
0
2
506

たとえば、a.py にはクラス A

があります。

A にはいくつかのメソッドがあり、それらはすべてグローバル関数 hello() (クラスの外で定義されていますが、.py でも定義されています) を呼び出します。

サブクラス B を作成したいが、B が新しく定義された hello() を呼び出す必要があるとします。これは可能ですか?

リーリー リーリー

挨拶は変更せず、次のような出力が必要です:

b = B()

b.greeting()
'こんにちは'

曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(2)
大家讲道理

継承を使用する必要があるようです。

いいねを押す +0
漂亮男人

お誘いありがとうございます。

申し訳ありませんが、私はあなたのニーズをまだ完全に理解していないので、最初に理論的に答えます。質問者が何かを追加できれば、私の答えをさらに改善し、問題を解決できるコードを提供できます。

Python では、メソッドをクラスと論理的に組み合わせることができるかどうか。その後、このメソッドをクラスの静的メソッドとして使用できます。つまり、@staticmethod で修飾することができます。

もしよろしければhello()作为类A和类B的静态方法,那么在各自的类中用cls.hello()就可以调用各自版本的hello

件名の説明によれば、カテゴリーBにhello(),那么我想将其作为静态方法是没有问题的。如果有其他模块想要调用a.py中的hello(),可以直接使用A.hello()が含まれています。

質問の要件を誤解している場合は修正してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート