Как мне переосмыслить объекты / ориентацию объектов здесь? - PullRequest
0 голосов
/ 01 сентября 2011

Я (в основном пытаюсь изучать python и json, но также) пытаюсь периодически извлекать и форматировать список популярных тем из твиттера.Я сделал это вместе, снимая много разных уроков.Он служит моим целям - печатает HTML-код, который мне нужен для вывода, но мне интересно, мог бы я думать об объектах иначе или лучше структурировать его.Помощь?

class trend:
        #these are the fields that Twitter provides, so they make up one trend.
        def __init__(self, query, name, promoted_content, events, url):
                self.query = query
                self.name = name
                self.promoted_content = promoted_content
                self.events = events
                self.url = url 

        def listitem(self):
                print "\t <li><a href=\"%s\">%s</a></li>\n" %(self.url, self.name)

class trending:
        def __init__(self,api_url,title):
                self.api_url = api_url
                self.title = title

        def get_trending(self):
                import simplejson as json
                import urllib2

                trends_all = json.loads(urllib2.urlopen(self.api_url).read())
                # test print
                # print trends_all[0]['trends']
                print "<p>%s</p> \n <ol>" % self.title

                #I'm initializing an array, though I don't actually use it. That's next.
                trends = []
                for x in trends_all[0]['trends']:
                    thistrend = trend(x['query'], x['name'], x['promoted_content'], x['events'], x['url'])
                    thistrend.listitem()
                    trends.append(thistrend) 
                print "</ol>\n"
                return trends

usa = trending("http://api.twitter.com/1/trends/23424977.json","Trending nationally")
usa.get_trending()

обратная связь?

1 Ответ

1 голос
/ 01 сентября 2011

В вашем примере я не понимаю, почему тренды вообще должны быть классом, поскольку они имеют только одну функцию. Это может быть записано с get_trending в качестве отдельной функции, которая принимает api_url и title в качестве аргументов.

...