我正在使用Python Flickr API,在定义函数时遇到了问题(我对Python还不太熟悉)。
我需要将以下api功能包装成一个函数:
photos = flickr.photos_search(
tags="foo",
is_commons="True")
这将从Flickr的Commons集合返回对标记“foo”的照片搜索。
现在我想在每次搜索时替换标记,所以我将它包装在一个函数中:
def search_photos(fl_tags):
photos = flickr.photos_search(
tags=fl_tags,
is_commons="True")
search_photos("foo")
这是可行的,I s_commons标志但是,我需要偶尔完全替换(不仅是值,而且是键,因为Flickr的API中似乎有一个bug,它总是在commons集合中搜索,不管您将标志设置为哪个值)。
在这种情况下,我想用键值组合license="9"
替换它。
我不知道如何把它放到函数参数中。如果我提供一个fl_license
参数,并在调用函数时简单地将其设置为license="9"
,那么这就不起作用(正如我所期望的那样)。
def search_photos(fl_tags, fl_license):
photos = flickr.photos_search(
tags=fl_tags,
fl_license)
search_photos("foo", license="9") # --> SyntaxError: non-keyword arg after keyword arg
有什么办法可以让它工作吗。如何通过函数参数获取键值对?
谢谢!
你可以试试这样的:
如果未给定参数,
variable = ''
默认情况下将该参数设置为空字符串(空字符串的值为false,因此如果不传入第二个参数,则该函数将默认为公共搜索)。否则,它将把第二个参数作为license_val=
参数。我相信你在找“关键字参数”。这个StackOverflow post(Python normal arguments vs. keyword arguments)确实帮助我理解了这个概念,因为我也是一个新手。
实际上,函数从调用中接收到的任何参数都将被分配到一个dict中,函数参数的名称用“**”指定。
相关问题 更多 >
编程相关推荐