首页 > 解决方案 > 模块作为无属性 - 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'没有属性'脚本'

恢复,而不是调用“脚本”变量中的内容,而是调用名称脚本本身。

现在你问为什么你想要那个?-> 回答:我想在我的应用程序中调用并向用户显示不同的文件,这些文件将执行不同的操作

标签: pythonpython-3.xlinuxpyqt5

解决方案


something.other就是Python所说"other"的属性访问,属性名在哪里。如果要访问具有动态名称的属性,可以使用getattr.

def func_pcb1(self):
    script = self.nome_do_script
    getattr(pcb_files, script).main(self)

从长远来看,你会想学习如何使用字典来处理这些事情。


推荐阅读