Python - необязательные параметры перед обязательными - PullRequest
0 голосов
/ 26 мая 2018
def func(a,  b,  c,  config)

Мне всегда нужно будет выбирать один из трех (a, b, c), и конфигурация всегда требуется.Он должен работать так:

func(a="hello", config) 

и

func(b="hello", config) 

Можно ли разместить необязательные параметры раньше требуемых?

1 Ответ

0 голосов
/ 26 мая 2018

Использовать параметры по умолчанию.

def func(config, a = None, b = None, c = None):
    pass
func(config, b="B")

Использовать словарь

params = {"config": myConfig, "b": valB}  # you want b here
def func(**params):
    config = params["config"]
    a = params.get("a")
    b = params.get("b")
    c = params.get("c")
func(params)

Редактировать: если вы хотите, чтобы config всегда был последним, используйте его как

def func(a=None, b=None, c=None, config=None):
    pass
func(b=valB, config=myConfig)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...