作用域如何在python中工作?

时间:2018-10-23 14:33:09

标签: python

我是面向对象的世界的新手,尝试在python中遵循以下代码并从另一个类调用一个类的函数。

Mycode.py

class A:

def funcA():
    return "sometext"

def funcB(self):
    self.funcA()  # calls func A internally from funcB 

secondcode.py

from Mycode import A

class B:
      def funcC(self):
          A.funcB(self)  # it gives error for call funcA() as it is unknown to class B
if __name__ == '__main__':

b=B()
b.funcC()

AttributeError:“ B”对象没有属性“ funcA”对于python中的类,作用域如何起作用?

1 个答案:

答案 0 :(得分:0)

问题不是范围,但您对self有误解。

class B:
      def func C(self):
          A.funcB(self) 

在上面的代码中,selfB而不是A的实例。但是A.funcB应该接受A的实例。或self.funcA中的A.funcB不可用。