首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何制定pylint规则以允许以`__`开头的私有变量

如何制定pylint规则以允许以`__`开头的私有变量
EN

Stack Overflow用户
提问于 2020-09-07 23:21:49
回答 1查看 544关注 0票数 0

基本上,我有一个带有私有变量的类:

代码语言:javascript
运行
复制
class MyClass:
   def __init__(self, abAb):
      self.__abAb = abAb

现在,皮林特抱怨道:

代码语言:javascript
运行
复制
Attribute name "__abAb" doesn't conform to camelCase naming style

Python并不真正了解私有变量,但据我所知,它可以通过添加两个下划线来实现。然而,现在我遇到了一个问题,那个pylint抱怨说,我还没有找到一种优雅的方法来禁用该消息,但是:

  • 我不想压制每一次事件的信息。
  • 我在.pylintrc中指定了正则表达式以允许下划线,但是不可能非常严格地强制执行camelCase。
  • 我不想一般地禁用名称检查。

还有其他方法允许这样的名字吗?类似于"__camelCase“规则,我可以应用到class-attributes上吗?还是另一种“内置”的奏鸣曲?

实际上,在更改为snake_case命名约定之后,pylint不再抱怨:

代码语言:javascript
运行
复制
class MyClass:
   def __init__(self, ab_ab):
      self.__ab_ab = ab_ab

这有点奇怪,但这就是我想要的。因此,我将讨论属性和方法的snake_case命名。

编辑:从camelCasesnake_case实际上解决了pylint的问题。

EN

回答 1

Stack Overflow用户

发布于 2020-09-07 23:59:30

除常量外,下划线不是骆驼情况的一部分,因此没有一个很好的内置方法来实现这一点。尽管如此,您可以将attr-rgx添加到您的.pylintrc中,使用模式__[a-z]+[A-Z0-9]+,但是这将是混合命名样式,所以如果完全可以避免的话,可能不是一种您希望采用的方法。

理想情况下,对于python,您将根据官方的案例首选命名风格使用PEP8,除了类名之外的几乎所有东西。

请记住,命名约定只是约定,而且大多是主观的,而且您的代码仍然有效,它只会产生一种“臭味”。在库和apis中,使用非常规命名约定可能会降低潜在用户集成代码的可能性,因此它实际上可能不利于项目的成功。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63785308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档