Я хотел бы написать функцию, в которой значение по умолчанию одного аргумента является функцией некоторых аргументов, которые передаются той же функции. Что-то вроде этого:
def function(x, y = function2(x)):
##definition of the function
Можно ли написать такую функцию на Python? Я нашел ответ это для C++. Но в Python нет перегрузки методов
Заранее спасибо.






Это не имеет никакого смысла. чего вы пытаетесь достичь? Что такое Y? Это работает? тогда вы должны написать:
def function(x, y = function2):
##definition of the function
Если Y - простое значение, вы должны написать:
def function(x, y = None):
if y is None:
y = function2(x)
Довольно обычный способ решить эту проблему - использовать None в качестве заполнителя:
def function(x, y=None):
if y is None:
y = f2(x)
pass # whatever function() needs to do
Я не знаю, чего именно вы здесь пытаетесь достичь, но вы можете использовать декоратор, который сделает то, что вам нужно.
Глупый пример здесь https://repl.it/@SiddharthShishu/IntrepidPunctualProspect
def function(x, y=None):
if y is None:
y = f2(x)
Имейте в виду, что это будет работать, если такие значения, как нули, пустые коллекции и другие вещи, которые оцениваются как False, НЕ являются допустимым значением для y.
Кроме того, это был бы лучший способ установить значения по умолчанию для некоторой переменной типа mutabe.