我正在使用Python中的对象,我想要的是在for循环中替换属性以从对象中获取数据。这是我的代码:
def calculate_something(dictionaryWithObjects):
for attribute in ['attr1', 'attr2', 'attr3']:
dataA1, dataA2 = dictionaryWithObjects['Object1'].attribute
dataB1, dataB2 = dictionaryWithObjects['Object2'].attribute
dataC1, dataC2 = dictionaryWithObjects['Object3'].attribute
所以这或多或少是我认为我需要的。之后我将使用这些数据进行计算。但它给出了一个错误,说该对象没有名为" .attribute"的属性。当然,它不是,我的意思是取代' attr1'在那里。
我做错了什么?
答案 0 :(得分:4)
为了按名称访问实例属性,您应该使用[Python]: getattr(object, name[, default]),例如:
String styledText = "This is <font color='red'>simple</font>.";
textView.setText(Html.fromHtml(styledText),
TextView.BufferType.SPANNABLE);
答案 1 :(得分:0)
尝试这样的事情:
def calculate_something(dictionaryWithObjects):
for attribute in ['attr1', 'attr2', 'attr3']:
dataA1, dataA2 = dictionaryWithObjects['Object1'][attribute]
答案 2 :(得分:0)
您可以使用eval
:
data=eval('Object1.'+attribute)