Python遍历对象属性

Python遍历对象属性,python,python-2.7,object,for-loop,Python,Python 2.7,Object,For Loop,如何在Python中迭代对象的属性 我有一门课: class Twitt: def __init__(self): self.usernames = [] self.names = [] self.tweet = [] self.imageurl = [] def twitter_lookup(self, coordinents, radius): cheese = [] twitt

如何在Python中迭代对象的属性

我有一门课:

class Twitt:
    def __init__(self):
        self.usernames = []
        self.names = []
        self.tweet = []
        self.imageurl = []

    def twitter_lookup(self, coordinents, radius):
        cheese = []
        twitter = Twitter(auth=auth)
        coordinents = coordinents + "," + radius
        print coordinents
        query = twitter.search.tweets(q="", geocode=coordinents, rpp=10)
        for result in query["statuses"]:
            self.usernames.append(result["user"]["screen_name"])
            self.names.append(result['user']["name"])
            self.tweet.append(h.unescape(result["text"]))
            self.imageurl.append(result['user']["profile_image_url_https"])
现在,我可以通过以下操作获取我的信息:

k = Twitt()
k.twitter_lookup("51.5033630,-0.1276250", "1mi")
print k.names
我希望能够在for循环中迭代属性,如下所示:

for item in k:
   print item.names
更新

对于Python3,应该使用
items()
而不是
iteritems()

PYTHON 2

for attr, value in k.__dict__.iteritems():
        print attr, value
PYTHON 3

for attr, value in k.__dict__.items():
        print(attr, value)
这会打印出来

'names', [a list with names]
'tweet', [a list with tweet]
在python中的对象属性上迭代: 印刷品:

python test.py
Attribute: a
Value: 5
Attribute: foobar
Value: <function foobar at 0x7fe74f8bfc08>
Attribute: __module__
Value: __main__
Attribute: b
Value: [1, 2, 3]
Attribute: __doc__
Value:
python test.py
属性:a
价值:5
属性:foobar
价值:
属性:\模块__
值:_umain__
属性:b
值:[1,2,3]
属性:\文件__
价值:

您可以使用标准的Python习惯用法:


什么属性?你的意思是超过“k”个属性?我可能没有在这里使用正确的术语,但是的,我希望能够以某种对象的形式返回我的用户名、tweet等,我可以逐一遍历它们。像这样:对于twitter中的项目print item.usernames。请尝试我的答案,看看是否适合您。在Python3中删除了k.iteritems(),改用k.items()。@trdavidson我添加了注释。在Python3中,您还需要用于打印操作的参数。隐藏
\u dict\u
方法非常有用!另外,要作为dict返回,请使用dict comprehension
print({attr:value for attr,value in k..\uuu dict\uuu.iteritems()})
我在继承自另一个对象的对象上尝试了此操作,它只返回属于基类的属性。
python test.py
Attribute: a
Value: 5
Attribute: foobar
Value: <function foobar at 0x7fe74f8bfc08>
Attribute: __module__
Value: __main__
Attribute: b
Value: [1, 2, 3]
Attribute: __doc__
Value:
for attr, value in vars(k).items():
    print(attr, '=', value)