Python JSON Binding: зачем писать такой код? - PullRequest
0 голосов
/ 15 декабря 2011

Я использую некоторый открытый API веб-сайта SNS, версия 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 Ответ

1 голос
/ 15 декабря 2011

Возможно, comment не поддается прямому доступу к атрибутам. Если так ...

Похоже, API был разработан программистом Java. Более Pythonic решение - при условии, что вы не можете получить доступ к атрибутам comment напрямую - было бы переименовать метод getAtt в __getattr__ и записать, например, mid = self.id.

Но даже тогда идея присвоения каждому comment номеру self.obj в свою очередь кажется извращенной. Некоторая оболочка вокруг comment, вероятно, будет лучше:

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

На самом деле, это было бы достаточно кратко, чтобы вы даже беспокоились о локальных переменных:

c = attrgetter(comment)
print "mentions---"+ str(c.mid) +":"+ c.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...