我想根据用户的选择对不同的属性使用相同的搜索功能。我正在尝试在搜索特定动物时使用搜索功能中的输入参数。
我可以在打印中使用x,但不能在循环中使用..
例如,我希望循环使用属性名称(animalList [i] .name)如果x设置为name,则年龄如果x i设置为age,依此类推。但是当在循环中使用animalList [i] .x时,我得到错误“'动物'对象没有属性'x'”。如何使用x i设置的属性?
pres[4][2]
答案 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方法的东西。