在B类中传递A类对象的self

时间:2017-09-12 20:06:26

标签: python class oop

说,我必须使用AB类,B的成员函数需要self作为输入参数。

这样的事情(不起作用):

import A

class B:
    def func(self):
        A_obj = A.A()
        required_for_calc = A.func_A(A_obj.__self__)

A的样子:

class A:
    def __init__(self):
        self.x = 0
        self.y = 1

    def func_A(self):
        # do something with self here...

2 个答案:

答案 0 :(得分:1)

self是对象本身:

required_for_calc = A.func_A(A_obj)

或简单地说:

required_for_calc = A_obj.func_A()

答案 1 :(得分:-1)

A如果不实例化A类,“self”将永远不可访问,这是因为__init__方法仅在实例化时调用。您可以做的是子类A并且只要您不隐藏__init__,即在__init__中定义另一个b而不使用super(),将self可用。

import A

class B(A):
# the rest of the code

在这种情况下,func_A已经是B类的一部分,因为它是继承的。