在下面的代码中,我希望迭代userData Object的所有变量。我想知道怎么做。代码 myString + = eachObject.everyElement 是我发现问题的地方。我无法弄清楚如何遍历对象的每个元素。
class userData(ndb.Model):
name = ndb.StringProperty()
age = ndb.IntegerProperty()
nationality = ndb.StringProperty()
date = ndb.DateTimeProperty()
class MyApp(webapp2.RequestHandler):
def post(self):
listOfUserData = ['name', 'age', 'nationality', 'date']
myString= ""
#Here, I have few userData objects and I wish to get all
#the userData perperties and form a string
myUserDataObjects = [userData1, userData2, userData3]
for eachObject in myUserDataObjects:
for everyElement in listOfUserData:
######################################
#This is the place where I need help##
######################################
myString += eachObject.everyElement
self.response.out.write(myString)
我知道我可以通过写作来访问元素 eachObject.name + eachObject.age + ...,但我反对这样做,因为如果我这样做并且我计划向userData添加一个新属性,我将不得不更改for循环中的代码。相反,我只是计划将该属性添加到listOfUserData,这使它更容易。
感谢任何建议/帮助。
谢谢, Krishna Chaitanya
答案 0 :(得分:2)
使用getattr方法从对象获取属性。在您的代码示例中,以下内容应该有效:
myString += getattr(eachObject, everyElement)