函数调用问题

时间:2017-03-15 17:27:04

标签: python function traceback

您好我遇到了函数调用问题。下面是我用于函数的代码。

def get_flickr_data(search_data,photo_number=50):
    baseurl ="https://api.flickr.com/services/rest/"
    params_d={}
    params_d["tags"]= search_data
    params_d["per_page"]=photo_number
    params_d["format"]= "json"
    params_d["method"]= "flickr.photos.search"
    params_d["tag_mode"]= "all"
    params_d["api_key"] = FLICKR_KEY
    unique_indent = params_unique_combination(baseurl,params_d)
    if unique_indent in CACHE_DICTION:
        flickr_info = CACHE_DICTION[unique_indent]
    else:
        resp = requests.get(baseurl,params_d)
        python_flickr = json.loads(resp.text[14:-1])
        CACHE_DICTION[unique_indent] = python_flickr
        f = open(CACHE_FNAME,"w")
        cache_str_tmp = json.dumps(CACHE_DICTION)
        f.write(cache_str_tmp)
        f.close()
    return CACHE_DICTION[unique_indent]

我正在尝试使用输入“mountains”调用我的get_flickr_data函数(并将50作为第二个参数)。然后我想将结果保存在变量flickr_mountains_result中。(旁注我不是很擅长函数所以我可能遗漏了一些东西)

get_flickr_data("mountains",50)
flickr_mountains_result = get_flickr_data
print flickr_mountains_result 

上面是我的代码无效,我得到了追溯TypeError:'function'对象没有属性' getitem '。

2 个答案:

答案 0 :(得分:1)

这一行正在执行函数:

get_flickr_data("mountains",50)

要捕捉其结果,请将第一行和第二行结合起来:

flickr_mountains_result = get_flickr_data("mountains",50)

您的函数返回的值为assigned to the variable

答案 1 :(得分:0)

这应该有效:

flickr_mountains_result = get_flickr_data("mountains",50)
print flickr_mountains_result 

您必须捕获变量中函数返回的值才能在之后使用它 阅读有关函数如何工作的更多信息,以及如何使用它们here,或者为您找到的初学者提供任何其他教程!