Python 哈希运行时



我有一个运行时问题。

在 Python 函数中:

 def f(x):
     hash = { 1: g(x) }
     return hash[1]

g(x) 何时实际执行?是调用 f(x) 还是返回哈希 [1] 时?

调用f(x)时执行g(x); g(x)在进行hash时调用。

如果删除 return 语句,则可以看到发生了什么:

>>> def g(x):
...     print 'g(%s) called' % x
... 
>>> def f(x):
...     hash = { 1: g(x)}
... 
>>> f(1)
g(1) called

同意马修的观点。更准确地说,g(x)是在f(x)中创建对象时执行hash

最新更新