我想传递一个 dictionary
:
items = {"artist": "Radiohead", "track": "Karma Police"}
作为此 function
的参数:
def lastfm_similar_tracks(**kwargs):
result = last.get_track(kwargs)
st = dict(str(item[0]).split(" - ") for item in result.get_similar())
print (st)
其中 last.get_track("Radiohead", "Karma Police")
是调用本地 function
的正确方法。
然后这样称呼它:
lastfm_similar_tracks(items)
我收到此错误:
TypeError: lastfm_similar_tracks() takes exactly 0 arguments (1 given)
我应该如何纠正这个?
原文由 8-Bit Borges 发布,翻译遵循 CC BY-SA 4.0 许可协议
第一个问题:你需要像这样传递
items
:第二个问题,里面
lastfm_similar_tracks
,kwargs
是一个字典,其中的键没有特定的顺序,因此你不能保证传入get_track
时的顺序你能做的最好的事情是:此时,代码应该按您预期的方式工作。但是,我质疑
**kwargs
在lastfm_similar_tracks
中的使用:你真的需要那样定义它吗?怎么样:然后你可以这样称呼它:
这样,您确保调用者必须传入
artist
和track
否则函数调用将失败。