说,我必须使用A
和B
类,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...
答案 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类的一部分,因为它是继承的。