Python iterando a través de atributos de objeto

¿Cómo itero sobre los atributos de un objeto en Python?

Tengo una clase:

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"]) 

Ahora puedo obtener mi información haciendo esto:

 k = Twitt() k.twitter_lookup("51.5033630,-0.1276250", "1mi") print k.names 

Quiero poder hacer es iterar sobre los atributos en un bucle for así:

 for item in k: print item.names 

ACTUALIZADO

Para Python 3, debes usar items() lugar de 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) 

Esto imprimirá

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

Puedes usar el idioma estándar de Python, vars() :

 for attr, value in vars(k).items(): print(attr, '=', value) 

Iterar sobre los atributos de un objeto en python:

 class C: a = 5 b = [1,2,3] def foobar(): b = "hi" for attr, value in C.__dict__.iteritems(): print "Attribute: " + str(attr or "") print "Value: " + str(value or "") 

Huellas dactilares:

 python test.py Attribute: a Value: 5 Attribute: foobar Value:  Attribute: __module__ Value: __main__ Attribute: b Value: [1, 2, 3] Attribute: __doc__ Value: