如果我在模块级别声明一个实例,并且它只被设置一次且永不更改,那么我应该遵循PEP8中的大写命名规范吗?
例如:
entity_manager = EntityManager(config)
vs
ENTITY_MANAGER = EntityManager(config)
通常情况下,当常量是原始类型(例如整数)时,不需要讨论。但是这种情况呢?
如果我在模块级别声明一个实例,并且它只被设置一次且永不更改,那么我应该遵循PEP8中的大写命名规范吗?
例如:
entity_manager = EntityManager(config)
vs
ENTITY_MANAGER = EntityManager(config)
常量通常在模块级别上定义,并使用大写字母和下划线分隔单词。例如MAX_OVERFLOW和TOTAL。
我赞同PEP8的一般精神和保持代码一致的做法。如果您对PEP8有疑虑,请在与您的团队达成共识后更新您的.pylintrc。
关于原帖,我也同意“常量”的大写声明,无论它们是基元还是对象。但我不赞成在模块级别上使用全部大写来表示所有可能为不可变项的命名惯例,这违反了约定。由于Python没有直接强制执行此规则,我们需要定义命名约定,以便开发人员可以从您离开的地方继续工作。如果我不希望我的“常量”被另一个模块访问,我在Python中除了在名称前加下划线、小写或以某种方式混淆名称外,没有太多可以做的。