python:错误:[< __ main __。类实例在0x>]

时间:2017-07-18 06:00:46

标签: python function class instance

我想在苹果商店的应用程序网站上搜索APP的名字,然后在终端上打印出来。

这是我的代码:

from lxml import html
import requests

class AppCrawler:
    def __init__(self,starting_url,depth):
        self.starting_url = starting_url
        self.depth = depth
        self.apps = []

    def crawl(self):
        self.get_app_from_link(self.starting_url)

    def get_app_from_link(self,link):
        start_page = requests.get(link)
        tree = html.fromstring(start_page.text)

        name =  tree.xpath('//h1[@itemprop="name"]/text()')[0]
        app = App(name)
        self.apps.append(app)

class App:
    def __init__(self,name):
        self.name=name
    def __str__(self):
        return ("Name:" + self.name)

crawler = AppCrawler('https://itunes.apple.com/us/app/candy-crush-saga/id553834731',0)
crawler.crawl()
################ print the list ##################################
print crawler.apps
################ print the element in the list ###################
for app in crawler.apps:
    print app

以下是我在终端中获得的信息:

[<__main__.App instance at 0x029C3EE0>]
AppName:Candy Crush Saga

我的问题是:

为什么列表打印是 [&lt; main .App实例位于0x029C3EE0&gt;] 并使用“ for in ”循环打印列表中的元素是完全正确的吗?

1 个答案:

答案 0 :(得分:1)

尝试:

&#xA;&#xA;
  for crawler.apps中的应用:&#xA; print str(app)&#xA;  
&#xA;&#xA;

或者实现

&#xA;&#xA;

__ repr __ < / code>而不是 __ str __

&#xA;