Вопрос по python – Присвоение функции переменной

42

Допустим, у меня есть функция

<code>def x():
    print(20)
</code>

Теперь я хочу присвоить функцию переменной с именемyтак что если я используюy это вызывает функциюx снова. если я просто сделаю заданиеy = x(), это возвращаетNone.

Я также отредактировал, что вы хотите сделать здесьassign a function to a variableнеassign a variable to a function. Gareth Latty
Я думаюlambda   должно работать, пожалуйста. проверьте мой ответ ниже. Pengju Zhao
Я отредактировал ваш вопрос, чтобы сократить его доrelevant information only., Ваш энтузиазм велик, но в будущем, пожалуйста, сосредоточьтесь на объяснении вашего фактического вопроса. Li-aung Yip

Ваш Ответ

5   ответов
12

don't используйте (), но просто имя функции.

В вашем случае даноdef x(): ...и переменнаяsilly_var вы бы сделали что-то вроде этого:

silly_var = x

а затем вы можете вызвать функцию либо с

x()

или же

silly_var()
-1

create function y=x+1 y=lambda x:x+1

call the function y(1) then return 2.

6

y=x() вы фактически присваиваете y результату вызова объекта функцииx и функция имеет возвращаемое значениеNone, Вызовы функций в Python выполняются с использованием(), Назначитьx to y так что вы можете позвонитьy так же, как вы быx Вы назначаете объект функции x на y, какy=x и вызвать функцию, используяy()

77

>>>def x():
>>>    print(20)
>>>y = x
>>>y()
20

Скобки сообщают Python, что вы вызываете функцию, поэтому, когда вы помещаете их туда, она вызывает функцию и назначаетy Значениеreturned отx (который в этом случаеNone).

Error: User Rate Limit Exceededaccept it.
Error: User Rate Limit Exceededoh yeah.
Error: User Rate Limit Exceeded stensootla
Error: User Rate Limit ExceededanyError: User Rate Limit Exceeded__call__()Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

Синтаксис

def x():
    print(20)

в основном так же, какx = lambda: print(20) (есть некоторые различия под капотом, но для большинства практических целей результаты одинаковы).

Синтаксис

def y(t):
   return t**2

в основном так же, какy= lambda t: t**2, Когда вы определяете функцию, вы создаете переменную, в которой эта функция имеет значение. В первом примере вы настраиваетеx быть функциейlambda: print(20), Такx Теперь относится к этой функции.x() это не функция, этоcall функции. В python функции являются просто типом переменной и обычно могут использоваться как любая другая переменная. Например:

def power_function(power):
      return  lambda x : x**power
power_function(3)(2)

Это возвращает 8.power_function это функция, которая возвращает функцию в качестве вывода. Когда это называется3, он возвращает функцию, которая кубизирует входные данные, поэтому, когдаthat функция вызывается на входе2, это возвращает 8. Вы могли бы сделатьcube = power_function(3), и сейчасcube(2) вернется 8.

Похожие вопросы