Назначение функции переменной
Скажем, у меня есть функция
def x():
print(20)
Теперь я хочу назначить функцию переменной с именем y
, так что если я использую y
, она снова вызовет функцию x
. если я просто выполняю назначение y = x()
, он возвращает None
.
Ответы
Ответ 1
Вы просто не вызываете функцию.
>>>def x():
>>> print(20)
>>>y = x
>>>y()
20
Скобки говорят python, что вы вызываете эту функцию, поэтому, когда вы их там помещаете, она вызывает функцию и присваивает y
значение, возвращаемое x
(которое в этом случае равно None
).
Ответ 2
Когда вы назначаете функцию переменной, вы не используете(), а просто имя функции.
В вашем случае, заданном def x(): ...
и переменной silly_var
, вы сделали бы что-то вроде этого:
silly_var = x
а затем вы можете вызвать функцию либо с помощью
x()
или
silly_var()
Ответ 3
когда вы выполняете y=x()
, вы фактически присваиваете y результатом вызова объекта функции x
, а функция имеет возвращаемое значение None
. Вызов функций в python выполняется с помощью ()
. Чтобы назначить x to y
, чтобы вы могли вызывать y
так же, как и вы, x
, присвойте объекту функции x y как y=x
и вызовите функцию, используя y()