Python:我应该使用常量还是属性?

以下哪两种方法被认为是最佳做法?两者都达到了相同的效果.

class Foo():
    LABELS = ('One','Two','Three')

class Bar():
    def __init__(self):
        self.__labels = ('One','Two','Three')

    @property
    def labels(self):
        return self.__labels

解决方法:

如果您不需要自定义获取或设置行为,那么制作某个属性是没有意义的.第一个版本更好.

而且,这些行为并不完全相同.在Foo中,标签有一个类级别属性.在酒吧,没有.引用Foo.LABELS将正常工作,引用Bar.labels将引发异常.

上一篇:使用Maven覆盖Java常量?


下一篇:php – 为什么非法常量名称不会使用define()抛出错误?