Почему foo = function() запускает функцию в Python?

] Я готов к упражнению 41 в книге «Изучаем 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! 

Итак, очевидно, что это происходит, но я не могу понять, почему язык работает именно так — что за языком стоит логика, которая делает его ценным способом работы. Думаю, мне будет полезно понять, почемуэто так, а не просто «так оно и работает».

Для ясности: я спрашиваю (я думаю), почему функция работает, когда все, что я делаю, это присваиваю ей значение для чего-то.Операторы печати просто есть, поэтому я вижу, что функция действительно работает.

Дело в том, что я никогда не бегаю

в штанах() shorts()

, что меня смущает.

Чтобы создать мучительную аналогию, если бы я-выпекал-печенье-дома было "печенье()", и я должен был бы делать печенье по субботам, я мог бы в конце концов поверить, что

Суббота = печенье()

но просто думать «эй, суббота — день печенья» — это не то же самое, что на самом деле печь печенье... так почему просто сказать

суббота = печенье()

на самом деле печь печенье, вместо того, чтобы просто настроить субботу с помощью переменной «cookies ()» для последующего использования?

7
задан JeanSibelius 12 March 2012 в 08:30
поделиться