我有一个运行时问题。
在 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
。