2011-12-15 5 views
0

私はいくつかのオープンSNS webisteのAPIを使用していますが、PythonのバージョンはJSONバージョンへのバインディングですが、実際にはこれを理解できません。python jsonバインディング:なぜこのようなコードを書くのですか?

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

これは* bad *コードです! –

+0

[これをチェックする](http://ideone.com/OfIft) – OnesimusUnbound

答えて

1

恐らくcommentは、属性アクセスを指示することはできません。もしそうなら...

APIはJavaプログラマによって設計されたようです。あなたがcommentの属性に直接アクセスできないと仮定すると、より平凡な解決策はメソッドの名前を__getattr__に変更し、たとえばmid = self.idと書いてください。

でも、それぞれcommentself.objに割り当てるという考え方は、逆に思われます。 comment周りのいくつかのラッパーが、おそらく良いだろう:

実際に
c = attrgetter(comment) 
mid = c.id 
⋮ 

、これはあなたもローカル変数を気にすることを十分に簡潔になります:

c = attrgetter(comment) 
print "mentions---"+ str(c.mid) +":"+ c.text 
関連する問題