首页 > 解决方案 > 范围如何在 python 中工作?

问题描述

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

我的代码.py

class A:

def funcA():
    return "sometext"

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

秒码.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中的类,范围如何工作?

标签: python

解决方案


问题不在于范围,而是您对self.

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

在上面的代码中,self是一个实例,B而不是A。但A.funcB应该接受A. 或者self.funcAinA.funcB是不可用的。


推荐阅读