Python Method not returning string
我正试图从我的一个方法返回一个字符串。方法在我的
1 | self.downloadHTTP() |
然后,在该方法中,打印内容将用于测试,以显示字符串在返回之前是有效的:
1 2 | print"workspace/data/formatter/input/" + self.filename return"workspace/data/formatter/input/" + self.filename |
但返回的字符串不是那样的,而是:
1 | <__main__.downloader object at 0x10be6e890> |
但在控制台中,您可以看到我的字符串在打印工作时是有效的:
1 2 | workspace/data/formatter/input/30009_2-8-2016_unprocessed.csv <__main__.downloader object at 0x10be6e890> |
编辑:
包括整个班级。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class downloader(object): def __init__(self,settings): #Configures settings and executes appropriate fucntion. self.fetch_type = settings['item']['import_settings']['fetch_type'] #Setting filename of local copy i = datetime.datetime.now() self.filename = settings['item']['partner_id'] +"_%s-%s-%s_unprocessed." % (i.day, i.month, i.year) + settings['item']['import_settings']['feed_format'] if self.fetch_type =="http": # downloadHTTP self.fetch_url = settings['item']['import_settings']['fetch_url'] self.downloadHTTP() def downloadHTTP(self): #TESTED urllib.urlretrieve(self.fetch_url,"workspace/data/formatter/input/"+self.filename) return"workspace/data/formatter/input/" + self.filename |
这就是我如何实例化:
1 2 3 | settings_path ="workspace/data/configs/feed/FTP.json" settings_json = json.loads(open(settings_path, 'r').read()) print downloader(settings_json) |
我这样做的原因是我想把它传递给另一个函数。
感谢您在评论中的意见。问题是我基本上是在打印对象,并且我在init函数中执行了所有任务。我通过将下载分离成一个方法来解决这个问题,然后返回该方法中的字符串。