ホームページ  >  に質問  >  本文

Python のサブクラスはグローバル関数をオーバーライドできますか?

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

があります。

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

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

リーリー リーリー

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

b = B()

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

曾经蜡笔没有小新曾经蜡笔没有小新2712日前475

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2017-05-18 10:48:14

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

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-18 10:48:14

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

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

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

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

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

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

    返事
    0
  • キャンセル返事