1

大家好,我有两个类 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 中删除 self 属性的情况下将 func1 放入 A 中?

这两个方法调用都不适合我,而且我不断收到类型错误

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

您可以在 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 回答
0

我猜想,既然您正在尝试做您想做的事情,那么在您的情况下要做的适当事情是将 B.func1 定义为类方法,因为您不希望它需要B类的实例。

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