【发布时间】:2012-03-11 14:22:01
【问题描述】:
我已经完成了 Learn Python the Hard Way 中的练习 41,我很难理解这样一个事实,即整个事情取决于一个正在运行的函数,因为它被分配为一个值一个变量。我写了一个小脚本来确认它是如何工作的,并且确实如此:
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!
很明显这会发生,但我不明白为什么这种语言会这样工作——语言背后的逻辑是什么,使它成为一种有价值的操作方式。我认为这对我理解为什么会有所帮助,而不仅仅是“它就是这样工作的”。
为了清楚起见:我在问(我猜)为什么函数正在运行,而我所做的只是将它分配为某物的值。打印语句就在那里,所以我可以看到该函数确实正在运行。
事实上我从来没有真正跑步过
裤子() 短裤()
这让我很困惑。
打个比喻,如果我在家烘焙饼干是“cookies()”,而我要在星期六做饼干,我最终可能会相信
星期六 = 饼干()
但只是想“嘿,星期六是饼干日”与 实际上烘烤饼干不一样......那为什么只是说
星期六 = cookies()
实际上是烘烤饼干,而不是仅仅使用变量“cookies()”设置星期六以供以后使用?
【问题讨论】:
-
您可能将
print与return混淆了。 -
我认为 Juhana 可能是对的。您是否期望
zap具有“穿上裤子!”的价值?如果是这样,则在分配后将print更改为return和print zap。 -
是的,显然您的期望与语言不一致。你期待什么?
-
什么是更直观的工作方式?
-
您是在问为什么要调用这些函数,或者为什么要在屏幕上显示输出?请澄清。