从python中的函数返回项目

时间:2014-01-11 17:34:29

标签: python function return

如何在此函数结束时返回print语句下面的注释掉的行?另外,当我使用返回未注释的函数运行函数时,我得到一个结果,但是当我运行带返回注释的函数时,我得到7个结果,我不确定为什么会发生这种情况。

我想要做的是在调用函数后调用track ['name']。当我这样做时,我收到此错误Traceback(最近一次调用最后一次):   文件“spot.py”,第25行,in     跟踪[“名称”] NameError:名称'track'未定义

import requests
import json

message = "if i can\'t let it go out of my mind".split()
size = len(message)

def decrementList(words):
    for w in [words] + [words[:-x] for x in range(1,len(words))]:
        url = 'http://ws.spotify.com/search/1/track.json?q='
        request = requests.get(url + "%20".join(w))

        json_dict = json.loads(request.content)
        track_title = ' '.join(w)
        num_words_removed = len(words) - len(w)
        new_message_length =  size - num_words_removed
        new_message = message[new_message_length:size]

        for track in json_dict["tracks"]:
            if track["name"].lower() == track_title.lower():
                print track["name"], " | ", track["href"], " | ", track_title, " | ", num_words_removed
                #return track["name"], track["href"], track_title, num_words_removed


decrementList(message)

1 个答案:

答案 0 :(得分:1)

return语句导致函数停止执行并返回您指定的值,而使用print语句只会导致某些内容输出到终端,并且函数继续执行。

为了使用从函数返回的值,您必须对其执行某些操作,例如将其分配给变量。例如:

track = decrementList(message)

但在这种情况下,您需要返回曲目:

    for track in json_dict["tracks"]:
        if track["name"].lower() == track_title.lower():
            return track