假设我想重用一些代码,将其命名为“函数 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)
即使我在全局范围内导入一个模块并在闭包中使用它,两者的时间似乎相同,如果不是第一个变体更快的话。
排除非局部变量的意外使用,是否有任何陷阱使这种闭包的使用变得多余或容易出错?
注意:我知道符合“平面优于嵌套”并且此类结构的可读性可能存在争议,但我的问题是针对可读性以外的其他原因。