大家好,我有两个类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中删除func1属性的情况下使self进入A?
这两个方法调用对我都不起作用,我总是得到一个类型错误
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 )发布于 2013-03-01 01:05:40
我猜,既然您正在尝试做您想要做的事情,那么在您的情况下,适当的做法是将B.func1定义为一个类方法,因为您不希望它需要一个类B的实例。
@classmethod
def func1(cls, args):
'blah发布于 2013-03-01 01:06:19
您可以在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 herehttps://stackoverflow.com/questions/15141316
复制相似问题