0

これがシナリオです。

メソッド xyz を持つクラス(X)があります

クラス(X)を拡張するクラス(Y)を定義する必要がありますが、クラスXの「xyz」ではなく、クラスYの「xyz」を実行する必要があります。

例は次のとおりです。

Code in first.py :

class X():
    def xyz(self):
        -----

Code in second.py:

import first
class Y(X):
    def xyz(self):
        -----

実際、私の要件は、「X.xyz()」が呼び出されるたびに「Y.xyz()」を呼び出すことであり、「first.py」で変更を行うことはできませんが、「second.py」は変更できます。

誰でもこれを明確にしてください。

4

2 に答える 2

0

変換は次のようなものです:

class X:
    def xyz(self):
        print 'X'

class Y(X):
    def __init__(self,x_instance):
        super(type(x_instance))

    def xyz(self):
        print 'Y'

def main():
    x_instance = X()
    x_instance.xyz()
    y_instance = Y(x_instance)
    y_instance.xyz()

if __name__=='__main__':
    main()

どちらが生成されますか:

X
Y
于 2013-09-24T06:52:20.570 に答える