如何跳过python中的可选参数,直接调用*args
How to skip optional arguments in python, and call *args directly
我正在创建一个非常基本的匹配市场解决方案,可用于博彩商店。我有一个看起来像这样的函数:
def create_market(name, match, providerID=str(uuid.uuid4()), market_kind=4, *market_parameters):
我想调用一个只包含 name
、match
和 market_parameters
的函数,同时跳过 providerID
和 market_kind
(因为这些是可选的)
请记住,*market_parameters
将是将在函数内部发送的字典元组。我将其解压为:
for idx, data in enumerate(args):
for k, v in data.iteritems():
if 'nWays' in k:
set_value = v
当我把这个字典设置成
market_parameters = {'nWays' : 5}
并调用函数 create_market('Standard', 1, *market_parameters)
我好像无法获取函数体内的数据。
我做错了什么?
通过像 *market_parameters
一样解压缩它,您将解压缩的值作为 providerID
发送(如果您的字典中有更多值,那么 providerID
、market_kind
等等上)。
你可能需要
def create_market(name, match, *market_parameters,
providerID=str(uuid.uuid4()), market_kind=4):
并调用如下函数:
create_market('Standard', 1, market_parameters) # you don't need to unpack it.
如果您想设置 providerID
或 market_kind
那么:
create_market('Standard', 1, market_parameters, providerID=your_provider_id, market_kind=your_market_kind)
我正在创建一个非常基本的匹配市场解决方案,可用于博彩商店。我有一个看起来像这样的函数:
def create_market(name, match, providerID=str(uuid.uuid4()), market_kind=4, *market_parameters):
我想调用一个只包含 name
、match
和 market_parameters
的函数,同时跳过 providerID
和 market_kind
(因为这些是可选的)
请记住,*market_parameters
将是将在函数内部发送的字典元组。我将其解压为:
for idx, data in enumerate(args):
for k, v in data.iteritems():
if 'nWays' in k:
set_value = v
当我把这个字典设置成
market_parameters = {'nWays' : 5}
并调用函数 create_market('Standard', 1, *market_parameters)
我好像无法获取函数体内的数据。
我做错了什么?
通过像 *market_parameters
一样解压缩它,您将解压缩的值作为 providerID
发送(如果您的字典中有更多值,那么 providerID
、market_kind
等等上)。
你可能需要
def create_market(name, match, *market_parameters,
providerID=str(uuid.uuid4()), market_kind=4):
并调用如下函数:
create_market('Standard', 1, market_parameters) # you don't need to unpack it.
如果您想设置 providerID
或 market_kind
那么:
create_market('Standard', 1, market_parameters, providerID=your_provider_id, market_kind=your_market_kind)