python json绑定:为什么要编写这样的代码?

时间:2011-12-15 10:21:17

标签: python twitter

我正在使用一些开放的SNS webiste的API,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?

1 个答案:

答案 0 :(得分:1)

或许comment不适合直接进行属性访问。如果是的话......

看起来API是由Java程序员设计的。一个更Pythonic的解决方案 - 假设您无法直接访问comment的属性 - 将getAtt方法重命名为__getattr__并写入,例如mid = self.id。< / p>

但即便如此,将每个comment依次分配给self.obj的想法似乎也有悖常理。围绕comment的一些包装可能会更好:

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

事实上,这将是足够简洁的,你甚至会打扰局部变量:

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