我正在使用一些开放的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?
答案 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