python - 模块作为无属性 - self.variable.function(self)
问题描述
我有一个名为 pcb_files.py 的模块,它只有一些像这样的导入 - > import read
然后我有另一个名为 Easy.py 的模块,它有一个类(Mainwindow)和一个方法/函数(function_pcb1)
Class MainWindow(xxx,xxx)
.....
.....
def func_pcb1(self):
pcb_files.read.main(self)
现在,每次我在我的应用程序中按下按钮时,我都会运行“读取”内部的函数“main”。到现在为止还挺好
我想要的是:
def func_pcb1(self):
script=self.nome_do_script
pcb_files.script.main(self)
就像你看到的那样,现在我有了这个:script=self.nome_do_script
其中“脚本”是一个字符串类型。
现在我只想改变一件事,代替“读取”,我想像在图像中那样放置“脚本”,但它给了我一个错误-> AttributeError:模块'pcb_files'没有属性'脚本'
恢复,而不是调用“脚本”变量中的内容,而是调用名称脚本本身。
现在你问为什么你想要那个?-> 回答:我想在我的应用程序中调用并向用户显示不同的文件,这些文件将执行不同的操作
解决方案
something.other
就是Python所说"other"
的属性访问,属性名在哪里。如果要访问具有动态名称的属性,可以使用getattr
.
def func_pcb1(self):
script = self.nome_do_script
getattr(pcb_files, script).main(self)
从长远来看,你会想学习如何使用字典来处理这些事情。
推荐阅读
- python - 使用 Python aiortc 从 OBS.ninja 读取/获取远程 webrtc 流
- database-design - 边缘/属性管理的最佳实践
- c++ - 如何在 C++ 中从文件读取字节到十六进制字符串?
- flutter - 如何在颤振自定义库中设置本地化?
- c# - AES解密不返回原始值
- ssis - SSIS 部署命令不能远程工作
- reactjs - React Bootstrap 可点击的 Form.Check
- firebase - 如何使用来自 Firebase 实时数据库的 RestClient Unity 获得最高 10 分
- ruby - Ruby初学者:无论是否包含结束语句,应用程序都会返回错误
- glsl - 如何从搅拌机中获取片段和顶点着色器代码?