1. ホーム
  2. python

[解決済み] Pythonのオブジェクト属性の反復処理 [重複].

2023-06-19 02:27:49

質問

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

どのように解決するのですか?

更新された

Python 3 では items() の代わりに iteritems()

ピソン2

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

ピソン3

for attr, value in k.__dict__.items():
        print(attr, value)

これは、以下のように表示されます。

'names', [a list with names]
'tweet', [a list with tweet]