访问模块单下划线前缀函数触发Pylint W0212警告是否为预期行为?
Pylint W0212警告触发模块级下划线元素是否为预期行为?
这确实是Pylint的预期行为。
虽然官方文档对W0212的描述重点放在类或子类外部访问受保护类成员的场景,但Pylint的实现会将模块中以单下划线开头的函数、变量等元素也纳入“受保护”范畴,触发该警告。
这背后是遵循Python的PEP 8命名规范:单下划线开头的元素(无论类内还是模块级)都被约定为内部实现细节,不建议外部代码直接访问。Pylint的W0212警告就是为了强制执行这个约定,提醒开发者避免依赖这些可能随时变更的内部接口。
如果你确实需要访问模块中的这类元素,可以通过两种方式忽略警告:
- 针对单行代码添加注释:
import my_module my_module._function() # pylint: disable=protected-access - 在项目的
.pylintrc配置文件中全局禁用该警告:[MASTER] disable=W0212
内容的提问来源于stack exchange,提问作者user22524802
相关产品推荐
相关产品推荐

