for Python中包含对象属性的循环

时间:2018-04-20 06:32:28

标签: python object for-loop iteration

我正在使用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'在那里。

我做错了什么?

3 个答案:

答案 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)