Python中与关键字、内置函数重名的变量下划线命名规则咨询
Python变量名与关键字、内置标识符冲突的命名规范
首先明确核心结论:常规场景下优先使用后缀下划线(keyword_),不要使用前缀下划线(_keyword),两种写法语法层面都可正常运行,区别仅在于是否符合通用命名约定、是否会造成语义误解,具体区分场景说明如下:
普通场景(非类内部)
- 与Python保留关键字(如
True、False、def、class等)冲突时:统一使用后缀下划线,比如要命名和True重名的变量,用True_即可。前缀单下划线的通用约定是「模块级私有/受保护成员」,使用
from module import *时不会导入该类成员。普通局部/全局变量加前缀下划线会误导其他开发者,误以为该变量是私有属性,不应该被外部调用。 - 与Python内置函数/类(如
open、list、max、str等)冲突时:同样优先用后缀下划线,比如你提到的开盘价变量,可用open_。如果允许的话更推荐结合场景起更具象的名称,比如股票开盘价直接命名为opening_price,可读性比open_更高,还能完全避免命名冲突。
- 与Python保留关键字(如
类内部定义成员的场景
类场景下的命名选择要结合成员的访问权限约定调整:- 如果该变量/方法是设计为对外公开的成员,依然遵循后缀下划线的规则,比如类的公开方法和内置
filter冲突,命名为filter_即可,避免用_filter让开发者误以为是受保护成员不敢调用。 - 如果该变量/方法本身就是设计为私有/受保护的成员,仅允许类内部或子类访问,可直接用前缀下划线,比如内部存储的开盘价属性命名为
_open,刚好符合私有成员的命名约定,不需要再加后缀下划线。
- 如果该变量/方法是设计为对外公开的成员,依然遵循后缀下划线的规则,比如类的公开方法和内置
内容的提问来源于stack exchange,提问作者Sara
相关产品推荐
相关产品推荐

