如何解决Python 保留关键字作为参数不起作用尽管它应该?
此代码
def get_recent_tracks(username,fromuts):
print(fromuts)
recent_tracks = lastfm_network.get_user(username).get_recent_tracks(**{'from':fromuts})
for i,track in enumerate(recent_tracks):
printable = track_only(track)
print(str(i + 1) + " " + printable)
return recent_tracks
结果
get_recent_tracks() got an unexpected keyword argument 'from'
print()
函数返回正确的结果。
我年轻时学习了几种编程语言。不幸的是,我的青春是在 30 年前,Python 不是其中之一。我需要的是一个相当于
recent_tracks = lastfm_network.get_user(username).get_recent_tracks(from=fromuts)
对于像 limit=20
这样的其他参数,代码工作得很好。
解决方法
您的代码格式没有任何问题。该代码将解决 from
是 Python 关键字的问题,而且它正在这样做。所以你已经解决了这个问题。现在的问题更为根本,与 from
是关键字...
问题很简单,get_recent_tracks
方法不接受名称为 from
的命名参数。您会期望这一点,因为它很难定义这样的参数,并且知道使用这样的命名参数调用它是有问题的,这样做是没有意义的。阅读该方法的文档并为其提供正确的参数,您就不会遇到问题。
更新:从评论中收集信息,问题似乎是 OP 假设每个参数的名称和存在与 get_recent_tracks
基础的 HTTP API 调用之间存在一对一映射蟒方法。以下是每个 API 的文档:
Python:https://hexdocs.pm/elixirfm/0.1.2/Elixirfm.User.html#get_recent_tracks/2
HTTP:https://last.fm/api/show/user.getRecentTracks
根据@Dierk,OP,Python API 中存在等效参数,名称为 time_from
。这没有反映在上面引用的文档中。我注意到在同一个文档中,API 中的另一种方法有注释“开始和结束时间尚未实现”。所以也许这个文档已经过时了,并且已经在 API 中添加了对“时间”参数的支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。