Python - передать значения по умолчанию для аргументов, которые являются функцией других аргументов функции - PullRequest
0 голосов
/ 24 июня 2018

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

def function(x, y = function2(x)):
    ##definition of the function

Можно ли написать такую ​​функцию на Python?Я сталкивался с этим ответом на c ++.Но в Python нет перегрузки методов

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 24 июня 2018
def function(x, y=None):
    if y is None:
        y = f2(x)
0 голосов
/ 24 июня 2018

Довольно обычный способ решить эту проблему - использовать None в качестве заполнителя:

def function(x, y=None):
    if y is None:
        y = f2(x)

    pass  # whatever function() needs to do
0 голосов
/ 24 июня 2018

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

Глупый пример здесь https://repl.it/@SiddharthShishu/IntrepidPunctualProspect

0 голосов
/ 24 июня 2018

Это не имеет смысла. что ты пытаешься достичь? Что такое Y? Это функция? тогда вы должны написать:

def function(x, y = function2):
    ##definition of the function

Если Y - простое значение, вы должны написать:

def function(x, y = None):
    if y is None:
         y = function2(x)
...