在搜索方法python中使用输入参数作为属性

时间:2017-03-18 16:39:48

标签: python attributes

我想根据用户的选择对不同的属性使用相同的搜索功能。我正在尝试在搜索特定动物时使用搜索功能中的输入参数。

我可以在打印中使用x,但不能在循环中使用..

例如,我希望循环使用属性名称(animalList [i] .name)如果x设置为name,则年龄如果x i设置为age,依此类推。但是当在循环中使用animalList [i] .x时,我得到错误“'动物'对象没有属性'x'”。如何使用x i设置的属性?

pres[4][2]

1 个答案:

答案 0 :(得分:0)

您可以使用getattr函数执行您想要的操作:

getattr(animalList[i], x)

所以它会是:

def search(animalList, x):
    print("What " + x  +" are you searching for? ")
    searchFor = raw_input("Answer: ")
    for animal in animalList: # this is the proper syntax for for loops
        if getattr(animal, x) == searchFor:
            returnVal = "In the park we have: ", animalList[i]
            break
        else:
            returnVal = "No match"
    return returnVal

这是假设animalList [i]实际上是一个函数或实际上有x方法的东西。