python функция необязательные аргументы и пропустить или нет их - PullRequest
0 голосов
/ 10 апреля 2020

Я хотел бы иметь функцию, которая может что-то вычислять, если необязательный аргумент не предоставлен.

Моя идея примерно такая:

def Compute(data,**arg):
        #
        if PAR are not provide then
        PAR=gumbel_r.fit(data)
        endif
        #

        QTR = gumbel_r.ppf(data,*PAR)

        return QTR

Может ли кто-нибудь мне помочь в этом?

Я пытался найти эту опцию, но я не могу.

Заранее спасибо, Best

Ответы [ 4 ]

1 голос
/ 10 апреля 2020

Вы используете переменную с именованным аргументом, а не необязательный аргумент. Однако то, что вы хотите, может быть достигнуто обоими способами:

Необязательный аргумент:

def Sort(data, PAR=None):
    if PAR is None:
        return sorted(data)
    else:
        return sorted(data, reverse=PAR)

Переменные ключевые аргументы:

def Sort2(data, **PAR):
    if not PAR:
        return sorted(data)
    else:
        return sorted(data, **PAR)

Результат:

>>> Sort([1,5,3])
[1, 3, 5]

>>> Sort([1,5,3], True)
[5, 3, 1]

>>> Sort2([1,5,3])
[1, 3, 5]

>>> Sort2([1,5,3], **{'reverse':True})
[5, 3, 1]
0 голосов
/ 10 апреля 2020

Вы можете установить значение по умолчанию для аргумента:

    def say(word="A default value"):
        print(word)

В результате:

    word() #A default value
    word("hi") #hi
0 голосов
/ 10 апреля 2020

Расчет аргументов по умолчанию

def Compute(data, arg = None):
  if not arg:
     # Computes value for optional argument since values not provided
     arg = gumbel_r.fit(data)
        if PAR are not provide then


  return gumbel_r.ppf(data, arg)

Использование

result = Compute(data)      # will compute a value for arg
result = Compute(data, 15)  # will use 15 as value for arg
0 голосов
/ 10 апреля 2020

вы можете создать две функции, одну с параметром и другую без параметра с соответствующим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...