我在Google 的 Python 样式指南中阅读了以下内容:
“避免嵌套函数或类,除非关闭局部值”。
“关闭局部值”是什么意思?
完整的相关部分如下:
2.6 嵌套/局部/内部类和函数
当用于关闭局部变量时,嵌套的局部函数或类很好。内部课程很好。
2.6.1 定义
类可以在方法、函数或类中定义。可以在方法或函数内部定义函数。嵌套函数对封闭范围中定义的变量具有只读访问权限。
2.6.2 优点
允许定义仅在非常有限的范围内使用的实用程序类和函数。非常ADT-y。常用于实现装饰器。
2.6.3 缺点
嵌套类或本地类的实例不能被腌制。嵌套函数和类不能直接测试。嵌套可以使您的外部函数更长且可读性更低。
2.6.4 决定
他们很好,有一些警告。避免嵌套函数或类,除非关闭局部值。不要嵌套函数只是为了对模块的用户隐藏它。取而代之的是,在模块级别使用 _ 作为其名称的前缀,以便测试仍然可以访问它。