Python 嵌套函数与内部类规范 | Google 官方指南
2025-07-22 13:35 更新
嵌套/局部/内部类和函数
Tip
可以用局部类和局部函数来捕获局部变量。
可以用内部类。
定义:
可以在方法、函数和类中定义内部类。可以在方法和函数中定义嵌套函数。嵌套函数可以只读访问外层作用域中的变量。(译者注:即内嵌函数可以读外部函数中定义的变量,但是无法改写,除非使用 nonlocal
)
优点:
方便定义作用域有限的工具类和函数。便于实现 抽象数据类型)。
常用于实现装饰器。
缺点:
无法直接测试嵌套的函数和类。嵌套函数和嵌套类会让外层函数的代码膨胀,可读性变差。
结论:
可以谨慎使用。
尽量避免使用嵌套函数和嵌套类,除非需要捕获 self
和 cls
以外的局部变量。
不要仅仅为了隐藏一个函数而使用嵌套函数。
应将需要隐藏的函数定义在模块级别,并给名称加上 _
前缀,以便在测试代码中调用此函数。
以上内容是否对您有帮助:
更多建议: