【发布时间】:2020-12-26 07:57:59
【问题描述】:
基本上我有一个带有私有变量的类:
class MyClass:
def __init__(self, abAb):
self.__abAb = abAb
现在,pylint 抱怨:
Attribute name "__abAb" doesn't conform to camelCase naming style
Python 并不真正了解私有变量,但据我所知,它可以通过添加两个下划线来实现。但是,现在我遇到了问题,即 pylint 抱怨并且我还没有找到一种优雅的方法来禁用该消息,而:
- 我不想在每次出现时都隐藏消息。
- 我在
.pylintrc中指定了正则表达式以允许使用下划线,但这样就不可能非常严格地执行驼峰式。 - 我一般不想禁用名称检查。
还有其他方法可以允许这样的名称吗?类似于 pylint 规则“__camelCase”,我可以将其应用于class-attributes?还是另一种“内置”pythonic 方式?
其实pylint改成snake_case命名约定后就不再抱怨了:
class MyClass:
def __init__(self, ab_ab):
self.__ab_ab = ab_ab
这有点奇怪,但这就是我想要的。所以我将使用snake_case 命名属性和方法。
编辑:从camelCase 更改为snake_case 实际上解决了pylint 的问题。
【问题讨论】:
-
您的问题有一个矛盾之处,即您要求一种“pythonic”方式来实现非pythonic命名约定......
-
@sabik:不,我在问一种如何在不让 pylint 抱怨命名风格的情况下使内部结构私有化的方法。也许答案是 Pythonic 的方式是公开,从不私有。我承认这并不令人满意。
-
pythonic的方式是使用snake_case作为属性名...
-
@sabik:我想知道命名风格如何强烈地属于一种语言。没关系,我会坚持使用snake_case,如果它可以为我节省一些其他的东西
-
它是PEP8 的一部分; PEP8 是用于发布过去 20 年 Python 语言本身的更改和其他核心信息的同一系列文档的一部分。
标签: python oop pylint information-hiding