Python 作为参数的保留关键字不起作用(尽管它应该?)
Python reserved keyword as argument does not work (although it should?)
这个代码
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()
函数returns结果正确。
我年轻时学过几种编程语言。不幸的是,我的青春大约在 30 年前,Python 不是其中之一。我需要的是
的工作等价物
recent_tracks = lastfm_network.get_user(username).get_recent_tracks(from=fromuts)
对于 limit=20
等其他参数,代码工作正常。
您的代码格式没有严格的错误。该代码将解决 from
作为 Python 关键字的问题,并且它正在这样做。所以你已经解决了这个问题。现在的问题更根本,与 from
是关键字这一事实无关...
问题只是 get_recent_tracks
方法不接受名称为 from
的命名参数。你会预料到这一点,因为它很难定义这样一个参数,而且这样做是没有意义的,因为它知道用这样一个命名参数调用它会有问题。阅读该方法的文档并为其提供正确的参数,您将不会遇到问题。
更新:从评论中收集信息,问题似乎是 OP 假设每个参数的名称和存在之间存在一对一映射到 HTTP API 调用是基础get_recent_tracks
Python 方法。以下是每个 API 的文档:
Python: https://hexdocs.pm/elixirfm/0.1.2/Elixirfm.User.html#get_recent_tracks/2
根据 @Dierk 的说法,OP 中存在等效参数 Python API 并且名称为 time_from
。这没有反映在上面引用的文档中。我注意到在同一文档中,API 中的另一种方法有注释“开始和结束时间尚未实现”。所以也许这个文档已经过时了,对“时间”参数的支持已经被添加到 API.
这个代码
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()
函数returns结果正确。
我年轻时学过几种编程语言。不幸的是,我的青春大约在 30 年前,Python 不是其中之一。我需要的是
recent_tracks = lastfm_network.get_user(username).get_recent_tracks(from=fromuts)
对于 limit=20
等其他参数,代码工作正常。
您的代码格式没有严格的错误。该代码将解决 from
作为 Python 关键字的问题,并且它正在这样做。所以你已经解决了这个问题。现在的问题更根本,与 from
是关键字这一事实无关...
问题只是 get_recent_tracks
方法不接受名称为 from
的命名参数。你会预料到这一点,因为它很难定义这样一个参数,而且这样做是没有意义的,因为它知道用这样一个命名参数调用它会有问题。阅读该方法的文档并为其提供正确的参数,您将不会遇到问题。
更新:从评论中收集信息,问题似乎是 OP 假设每个参数的名称和存在之间存在一对一映射到 HTTP API 调用是基础get_recent_tracks
Python 方法。以下是每个 API 的文档:
Python: https://hexdocs.pm/elixirfm/0.1.2/Elixirfm.User.html#get_recent_tracks/2
根据 @Dierk 的说法,OP 中存在等效参数 Python API 并且名称为 time_from
。这没有反映在上面引用的文档中。我注意到在同一文档中,API 中的另一种方法有注释“开始和结束时间尚未实现”。所以也许这个文档已经过时了,对“时间”参数的支持已经被添加到 API.