python - 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
方法不接受带有 name 的命名参数from
。你会预料到这一点,因为它很难定义这样的参数,而且知道用这样的命名参数调用它会有问题,这样做是没有意义的。阅读该方法的文档并为其提供正确的参数,您不会有问题。
get_recent_tracks
更新:从评论中收集信息,问题似乎是 OP 假设每个参数的名称和存在与作为Python 方法基础的 HTTP API 调用之间存在一对一的映射。以下是每个 API 的文档:
Python:https ://hexdocs.pm/elixirfm/0.1.2/Elixirfm.User.html#get_recent_tracks/2
根据@Dierk,OP,等效参数存在于Python API中并且具有名称time_from
。这没有反映在上面引用的文档中。我注意到在同一份文档中,API 中的另一种方法有注释“尚未实现的开始和结束时间”。所以也许这个文档已经过时了,并且对“时间”参数的支持已经被添加到 API 中。
推荐阅读
- java - 接受来自服务器的java中的xml消息
- java - 具有基本身份验证 java 的 Http 请求
- python-2.7 - Python 从模块扩展类
- javascript - 从JS前端的图像缓冲区生成缩略图
- java - Android:应用程序图标从存根应用程序更新到最新版本后消失?
- ansible - Ansible 处理程序 - 独占重启或重新加载
- vb.net - 从代码隐藏有条件地隐藏/显示中继器内的按钮
- javascript - 按键后重置 lodash 去抖动
- html - href 被 ng-click 覆盖 - 移动
- css - full calendar_scheduler - 如何在垂直议程日设置最小宽度资源列并进行水平滚动