参数命名与 Python 冲突

Parameter naming conflict with Python

在实施第三方 API (mollie) 时,他们似乎命名了一个参数来支持分页“from”,这与内置 python from.

有没有办法让我正确使用它?我没有正确传递参数吗?注意:它们写成 **params.

它支持的唯一参数是:fromlimit

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