python - 将字符串解释为变量名(涉及类)- Python

标签 python class variables eval pyqt4

我有一些变量名称字符串,最初必须是字符串(由于文件 IO)。
这些对应的变量是PyQt4 widgets的变量名,嵌入在两个类中。

我需要这些字符串能够转换为实际的变量名,以便在函数中使用它们。
(有点像你如何“int”一串数字)

这是代码(显示类疯狂)

第一个文件

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        self.VariableName = QWidget(whatever)

第二个文件

from FIRST_FILE import Ui_MainWindow

class Start(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
    def ResetDropBoxes(self):
        X = "VariableName"
        self.ui.X.Function()

有些人可能会认为这是 Pyuic4 (Qt Designer) 生成的 python 代码的格式

第二个文件的最后两行是问题所在。 我收到错误消息“Ui_MainWindow() 没有属性‘X’”。

除了尝试使用“eval”之外,我不知道该去哪里。 我试过诸如...

X = self.ui.eval("VariableName")

此提示错误“Ui_MainWindow() has no attribute 'eval'”

X = eval("VariableName")

“ undefined variable 名”

X = "VariableName"
eval(self.ui.X.Function())

“Ui_MainWindow() 没有属性‘X’”


在这件事上我需要任何帮助!
我觉得 eval 让我更近了一步,但使用这些嵌套类会抑制它!

哈尔普?!


详情:
- Python 2.7.1
- Windows 7(32 位)
- 空闲 1.8
- PyQt4
- Qt 设计器

最佳答案

尝试

getattr(self.ui, VariableName).Function()

参见 here有关 getattr 的更多信息。

关于python - 将字符串解释为变量名(涉及类)- Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470151/

相关文章:

python - rxpy 如何取消订阅

python异步和httpx

c++ - 如何将 "struct Node"转换为 "class Node"?

c++ - 在头类构造函数中使用嵌套类

javascript - 如何混淆 JavaScript 中的变量名?

python - 加载名称符合某些约定的包的所有子模块

python - 使用 Python 对数据集进行分组和聚合

c++ - 输出流中的函数调用优先级

JavaScript 变量 - HTML5 Canvas 问题

variables - 动态变量命名和引用 (ColdFusion)