Я занимаюсь Упражнением 41 в разделе «Изучить Python на жестком пути», и мне очень тяжело обмотать мой мозг вокруг того факта, что все это зависит от функции, выполняемой только потому, что она была назначена как значение для переменная. Я написал небольшой скрипт, чтобы подтвердить, что это, как это работает, и это делает:Почему функция foo = function() запускает функцию в Python?
def pants():
print "Put on some pants!"
def shorts():
print "And don't forget your underwear!"
zap = pants()
thing = shorts()
с результатами бытия:
Put on some pants!
And don't forget your underwear!
Так, очевидно, это происходит, но я не могу понять, почему язык работает именно так, что логика стоит за языком, что делает его ценным способом работы. Я думаю, мне было бы полезно перейти к пониманию , почему это, а не просто «так оно и работает».
Для ясности: Я спрашиваю (я думаю), почему функция работает, когда все, что я делаю, присваивает ей значение для чего-то. Операторы печати находятся там, поэтому я вижу, что функция действительно работает.
Это то, что я никогда не на самом деле работает
брюки() шорты()
, что сбивает с толку меня.
Чтобы создать замученную аналогию, если мне выпечки-печенья на доме были «куки()», и я должен был сделать печенье по субботам, я, возможно, в конце концов, считаю, что
Суббота = печенье()
но просто думать «эй, суббота это печенье день» не то же самое, как на самом деле выпечки печенья ... так почему же просто сказать
Суббота = печенье()
на самом деле испечь сотрудничества okies, а не просто настроить субботу с переменной "cookies()" для некоторых более поздних использования?
Вы, вероятно, путает '' print' с return'. – JJJ
Я думаю, что Юхана может быть прав. Вы ожидаете, что 'zap' будет иметь значение« Наденьте штаны! »? Если это так, измените 'print' на' return', а затем 'print zap' после того, как он был назначен. – chooban
Да, очевидно, ваши ожидания смещены с языком. Что вы ожидали? –