将字符串解释为变量名(涉及类)- Python
我有一些变量名的字符串,这些字符串一开始必须是字符串类型(因为要进行文件输入输出)。
这些变量对应的是PyQt4控件的变量名,嵌套在两个类里面。
我需要这些字符串能够转换成实际的变量名,以便在函数中使用它们。
(有点像把一个数字的字符串转换成整数那样)
这是代码(展示了类的复杂性)
第一个文件
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()没有属性'eval'”
X = eval("VariableName")
“VariableName未定义”
X = "VariableName"
eval(self.ui.X.Function())
“Ui_MainWindow()没有属性'X'”
我非常需要帮助!
我觉得使用eval能让我更接近解决方案,但由于使用了这些嵌套类,导致它无法正常工作!
求助'?!
详细信息:
- Python 2.7.1
- Windows 7(32位)
- IDLE 1.8
- PyQt4
- Qt Designer