假设我想重用一些代码,将其命名为"功能C"其使用范围仅在"函数R"的范围内。将函数定义嵌套在R中,用于限制其在本地范围内的名称(最简单的闭包,如果可以调用它)。 函数C不应该被返回,有任何副作用,甚至引用它的外部作用域(全局和导入的模块除外)
def R(x):
def C(y):
return y
return C(x)
对于大量R()调用,这是否会导致任何性能损失:
def C(x):
return x
def R(x)
return C(x)
即使我在全局范围内导入模块并在闭包内使用它,两个时间似乎相同,如果不是第一个变化更快。
不包括意外使用非局部变量,是否有任何陷阱使得闭包的使用多余或容易出错?
注意:我知道符合" Flat优于嵌套"这些结构的可读性可能存在争议,但我的问题主要是针对可读性等原因。