Python 嵌套函数与内部类规范 | Google 官方指南

2025-07-22 13:35 更新

嵌套/局部/内部类和函数

Tip

可以用局部类和局部函数来捕获局部变量。

可以用内部类。

定义:

可以在方法、函数和类中定义内部类。可以在方法和函数中定义嵌套函数。嵌套函数可以只读访问外层作用域中的变量。(译者注:即内嵌函数可以读外部函数中定义的变量,但是无法改写,除非使用 nonlocal

优点:

方便定义作用域有限的工具类和函数。便于实现 抽象数据类型)。
常用于实现装饰器。

缺点:

无法直接测试嵌套的函数和类。嵌套函数和嵌套类会让外层函数的代码膨胀,可读性变差。

结论:

可以谨慎使用。
尽量避免使用嵌套函数和嵌套类,除非需要捕获 self 和 cls 以外的局部变量。
不要仅仅为了隐藏一个函数而使用嵌套函数。
应将需要隐藏的函数定义在模块级别,并给名称加上 _ 前缀,以便在测试代码中调用此函数。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号