我想动态地更改方法中的类变量。最好的方法是什么?我不知道最好的做法是什么。目前我得到了错误:AttributeError: 'str' object has no attribute 'text'
,因为python无法将我更改的str识别为对象
self.LE_Donald_name
是Qt中已经创建的一个按钮,因此它是我的类的一个现有对象,例如,在某些情况下,我想调用一个名为self.LE_Matthew_name
的按钮
我正在尝试动态调用类的现有对象
我运行方法:
self.filter_contact_entry_widget("Donald")
调用我的类方法。
def filter_contact_entry_widget(self, occGroup):
sample_entry = "LE_" + occGroup + "_name"
main_contact = "LE_" + occGroup + "main_contact"
stand_in_contact = "LE_" + occGroup + "stand_in_contact"
search_results = self.sApp.search_contact_by_company(self.sample_dicts, self.sample_entry.text())
我对我的问题做了一个简化版本来澄清我的问题:
class MyClass:
def __ini__(self):
self.LE_donald_name = "Donald Duck"
self.LE_mickey_name = "Mickey Mouse"
def call_firstname(self, firstName):
sample_entry = "LE_" + firstName + "_name"
self.my_print(self.sample_entry)
def my_print(self, userInput):
print(userInput)
if __name__ == '__main__':
MyClass().call_firstname("donald")
让我们看看第一行发生了什么
这将创建一个局部变量
sample_entry
,它是一个类似于"LE_Donald_name"
的字符串但您不需要该字符串,而是需要属于该对象的名为} (这正是这个内置函数存在的原因)
"LE_Donald_name"
的属性,即self.LE_Donald_name
。即使有一个名为sample_entry
的局部变量包含"LE_Donald_name"
,也不能通过self.sample_entry
访问self.LE_Donald_name
。相反,使用^{为了确认您得到了想要的东西,您可以尝试类似
print(type(button))
的方法相关问题 更多 >
编程相关推荐