我在某处读到,在 python 的函数内部定义函数是不好的,因为它使 python 在调用外部函数时创建一个新的函数对象。基本上有人这么说:
#bad
def f():
def h():
return 4
return h()
#faster
def h():
return 4
def f(h=h):
return h()
这是真的?另外,如果我有大量这样的常量,该怎么办:
x = # long tuple of strings
# and several more similar tuples
# which are used to build up data structures
def f(x):
#parse x using constants above
return parse dictionary
如果我将所有常量都放在 f 的定义中会更快吗?还是应该将它们留在外面并在关键字参数中将它们绑定到本地名称?不幸的是,我没有任何数据可用于计时,所以我想我是在询问您在类似事情上的经历。