【发布时间】:2019-07-14 10:44:12
【问题描述】:
我试图了解 Python 如何处理以下示例中的代码:
当cake()()被执行时,Python首先打印'beets'然后打印'sweets'
但是,当 chocolate() 被执行时,Python 只打印 'sweets'
有人可以解释这两种情况的区别吗?
另外,当more_chocolate 被执行时,Python 不会打印任何值,它只是返回'cake'。
我相信对于这些情况有一个简洁的解释。希望有人能解释一下!
def cake():
print('beets')
def pie():
print('sweets')
return 'cake'
return pie
chocolate = cake()
cake()()
chocolate()
more_chocolate, more_cake = chocolate(), cake
more_chocolate
【问题讨论】:
-
在
chocolate = cake()之后(也打印beets)你有chocolate = pie所以当你使用chocolate()然后你运行pie()它只能打印sweets -
print('beets')和def pie()之间的额外缩进是什么意思?它会在当前编写时产生语法错误 -
cake()()像另外两行chocolate = cake()和chocolate()一样工作 -
我现在明白了。谢谢!
标签: python lambda test-environments