大家好我有两个A和B类,我想从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进入A而不从func1中删除self属性?
两个方法调用都没有为我工作,我一直收到类型错误
TypeError: unbound method func1 must be called with B instance as
first argument (got NoneType instance instead)
编辑:找到我的解决方案
我找到了问题的解决方案。当我将值从B传递给A时,我也需要传递我的B实例。所以在我的初学者A
class A(object):
__init__( args, B_arg):
在B组中
class B(object):
def passattributes():
c = A( args, self )
答案 0 :(得分:0)
我会猜测,因为你正在尝试做你想要做的事情,在你的情况下适当的做法是将B.func1定义为类方法,因为你不期望它要求B类的实例。
@classmethod
def func1(cls, args):
'blah
答案 1 :(得分: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