1

みなさん、こんにちは。クラスAとBが2つあり、Bからメソッドを取得してAで使用したいと思います。

私のコードは次の行に沿っています:

class A(object):
    __init__(self, args):
         'blah'

    def func2(self, args):
        #method = B.func1(args)
        # method = getattr(B, 'func1')


class B(object):
    __init__(self):
        'do stuff'


    def func1(self, args):
        'Do stuff here'
        return

func1からself属性を削除せずにfunc1をAに入れる方法はありますか?

2つのメソッド呼び出しのどちらも機能せず、タイプエラーが発生し続けます

TypeError: unbound method func1 must be called with B instance as
first argument (got NoneType instance instead)

編集:私の解決策を見つけました

私は自分の質問に対する解決策を見つけました。BからAIに値を渡すときは、Bのインスタンスも渡す必要がありました。だから私の初期のA

class A(object):
    __init__( args, B_arg):

そしてクラスBでは

class B(object):


    def passattributes():
         c = A( args, self )
4

2 に答える 2

0

あなたがやろうとしていることをやろうとしているので、あなたの場合に適切なことは B.func1 をクラスメソッドとして定義することだと思います.クラス B のインスタンス。

@classmethod
def func1(cls, args):
   'blah
于 2013-02-28T17:05:39.720 に答える
0

A クラスで B のインスタンスを作成できます。

class A(object):
    def __init__(self):
        'blah'
         self.bInst = B()

    def func2(self, args):
        method = self.bInst.func1('func1')

class B(object):
    def __init__(self):
        'do stuff'

    def func1(self, args):
        print 'Do stuff here'
        return

aInst = A()
aInst.func2('some arg')

結果:

Do stuff here
于 2013-02-28T17:06:19.380 に答える