我正在尝试从我的一个方法中返回一个字符串。该方法在我的__init__
方法中调用。我在__init__
中的命令是:
self.downloadHTTP()
然后我在方法中执行此操作,打印用于测试以显示字符串在返回之前有效:
print "workspace/data/formatter/input/" + self.filename
return "workspace/data/formatter/input/" + self.filename
但是返回的字符串不是那个,而是我得到:
<__main__.downloader object at 0x10be6e890>
但是在控制台中,您可以看到我的字符串在打印时有效:
workspace/data/formatter/input/30009_2-8-2016_unprocessed.csv
<__main__.downloader object at 0x10be6e890>
编辑:
包括全班。
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
这就是我实例化的方式:
settings_path = "workspace/data/configs/feed/FTP.json"
settings_json = json.loads(open(settings_path, 'r').read())
print downloader(settings_json)
我这样做的原因是我想把它传递给另一个函数。
答案 0 :(得分:0)
感谢您在评论中的意见。问题是我基本上打印了对象,而我正在 INIT 函数中执行所有任务。我通过将下载分离为方法然后在该方法中返回字符串来解决这个问题。