2011-12-15 20 views
0

我使用一些開放的SNS網站的API,Python的版本是一個結合了JSON版本,但我真的無法理解之下,爲什麼做這樣的事情?python json binding:爲什麼要寫這樣的代碼?

def mentions(self): 
    comments = self.api.mentions() 
    for comment in comments: 
     self.obj = comment 
     mid = self.getAtt("id") 
     text = self.getAtt("text") 
     print "mentions---"+ str(mid) +":"+ text 

爲什麼不能訪問評論自己的屬性,但分配給self.obj?

+0

你有機會獲得getAtt'的'實施父類的? – OnesimusUnbound

+1

這是*糟糕的*代碼! –

+0

[檢查這一個](http://ideone.com/OfIft)看看我的意思 – OnesimusUnbound

回答

1

也許comment是不適合直接屬性的訪問。如果是這樣的......

它看起來像API是由Java程序員設計的。如果您無法直接訪問comment的屬性,則更爲Pythonic的解決方案是將getAtt方法重命名爲__getattr__並編寫,例如mid = self.id

但即使再依次分配每個commentself.obj的想法似乎反常。各地comment有些包裝可能會更好:

c = attrgetter(comment) 
mid = c.id 
⋮ 

事實上,這將是足夠的簡潔,你甚至會與局部變量打擾:

c = attrgetter(comment) 
print "mentions---"+ str(c.mid) +":"+ c.text 
相關問題