参数命名与 Python 冲突
Parameter naming conflict with Python
在实施第三方 API (mollie) 时,他们似乎命名了一个参数来支持分页“from”,这与内置 python from
.
有没有办法让我正确使用它?我没有正确传递参数吗?注意:它们写成 **params
.
它支持的唯一参数是:from
和limit
。
from mollie.api.client import Client
c = Client().set_api_key(**KEY**)
c.subscriptions.list() # This works
c.subscriptions.list(limit=5) # This works
c.subscriptions.list(from="customer_code")
给出:
File "main.py", line 7
c.subscriptions.list(from="customer_code")
^
SyntaxError: invalid syntax
假设客户端定义如下:
def list(**params):
# some stuff with params
print(params.get('from'))
print(params.get('limit'))
那么调用list(from=5)
确实会报语法错误。但是由于函数将所有参数打包到 kwargs dict 并将它们视为 字符串键 ,我们可以在另一端做同样的事情 - unpack a dict to the function arguments:
list(**{'from': 5, 'limit': 10})
确实会打印:
5
10
在实施第三方 API (mollie) 时,他们似乎命名了一个参数来支持分页“from”,这与内置 python from
.
有没有办法让我正确使用它?我没有正确传递参数吗?注意:它们写成 **params
.
它支持的唯一参数是:from
和limit
。
from mollie.api.client import Client
c = Client().set_api_key(**KEY**)
c.subscriptions.list() # This works
c.subscriptions.list(limit=5) # This works
c.subscriptions.list(from="customer_code")
给出:
File "main.py", line 7
c.subscriptions.list(from="customer_code")
^
SyntaxError: invalid syntax
假设客户端定义如下:
def list(**params):
# some stuff with params
print(params.get('from'))
print(params.get('limit'))
那么调用list(from=5)
确实会报语法错误。但是由于函数将所有参数打包到 kwargs dict 并将它们视为 字符串键 ,我们可以在另一端做同样的事情 - unpack a dict to the function arguments:
list(**{'from': 5, 'limit': 10})
确实会打印:
5
10