python - 范围如何在 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中的类,范围如何工作?
解决方案
问题不在于范围,而是您对self
.
class B:
def func C(self):
A.funcB(self)
在上面的代码中,self
是一个实例,B
而不是A
。但A.funcB
应该接受A
. 或者self.funcA
inA.funcB
是不可用的。
推荐阅读
- java - 如何以编程方式转到主屏幕
- python - 在 VS Code 中定义字典时大括号的语法错误
- laravel - 关系数据中的 Laravel OrderBy
- google-cloud-platform - 将数据导入 GCP 中的本地 SSD 卷
- javascript - Angular 9 Mat-Paginator - 翻译
- r - NSE dplyr::left_join 由于类型不兼容而失败
- node.js - 从 docker 容器“失败”中启动 create-react-app / react-scripts 服务器,错误代码为 0
- flutter - 如何在注册前检查模型是否已经存在?
- r - R//ggplot2:结合facet_wrap和for循环时的动态标题
- python - pandas python:如何从行号导入excel文件