将打印功能分配给变量

etj*_*tjk 1 python

对于以下代码,在我看来,我们正在将打印功能分配给变量spam。

spam = print('Hello!')
Run Code Online (Sandbox Code Playgroud)

我想知道为什么不打电话给垃圾邮件,打印出来“你好!”?

Ale*_*ica 5

因为spam不是函数,所以它是使用类型为print的参数调用函数的结果。'Hello!'NoneNoneType

如果要将该表达式分配给变量,则可以使用lambda:

l = lambda: print('Hello!') # Doesn't actually call print
l() # 1. Prints 'Hello!'
l() # 2. Prints 'Hello!'
l() # 3. Prints 'Hello!'
Run Code Online (Sandbox Code Playgroud)