62

私は、他のクラスの束によって継承されるクラス A を持っています。これらのいくつかには類似した関数がいくつかあります。それらの関数を別の場所で定義し、それらを必要とするクラスによって呼び出されると便利です。しかし、これらの関数は、スーパー クラスで定義された関数を呼び出します。

class A():
    def imp_func(*args):
        # called by the child class functions

Class B(A):
    def common_func(self):
        # some stuff
        self.imp_func(*args)

self objectそのため、引数としてを受け取るヘルパー関数を作成し、ヘルパー関数imp_func内から を呼び出すことができます。

def helper_func(obj, some_args):
    # some common stuff
    obj.imp_func(*args)

class B(A):
    def common_func(self):
        # unique stuff
        helper_func(self, some_args)

これで問題は解決します。

しかし、私はこれを行う必要がありますか?これはPythonicですか?

4

1 に答える 1

86

それにはまったく問題はありません -selfは他のオブジェクトと同様であり、そのタイプ/動作のオブジェクトが歓迎されるあらゆるコンテキストで使用できます。

Python では、標準ライブラリに例示されているように、getself のインスタンス 常に関数(およびメソッドさらに演算子)渡さ ます

于 2013-04-18T13:48:02.457 に答える