【发布时间】:2020-08-18 08:27:00
【问题描述】:
我有一个类属性,它在一个类中是常量,但在它的子类或同级类中有一个不同的值。并且该属性是在基类的一个方法中使用的。
在这种情况下,我是否应该将属性address 表示为常量,即像ADDRESS 这样的SCREAMING_SNAKE_CASE?
例如,
class BaseClass:
address = ''
@classmethod
def print_address(cls):
print(cls.address)
class SubClass1(BaseClass):
address = 'sub1'
class SubClass2(BaseClass):
address = 'sub2'
或者,有没有更好的方法来做同样的事情?
【问题讨论】:
-
我不确定这种问题是否在stackoverflow中成为主题。如果不合适,请告诉我
-
如果它在子类中有不同的值,那么
cls.address在编译时没有常量值,所以根据定义,它不是常量。lower_snake_case适合 IMO;但我不知道如何对这个问题给出非基于意见的答案。
标签: python constants conventions