查看PEP8可以找到变量,函数,常量的命名约定......但是我无法清楚地了解哪个是类级别和实例级别属性的命名约定。
目前,我自己的风格为类和实例级别带来了一些常量与变量的区别,例如:
DEFAULT_VALUE
。COMMON_ATTRIBUTE
。instance_attribute
这里有一个非常愚蠢的例子,显示了这些用例:
class Parent(object):
DEFAULT = 1
COUNTER = 0 # counts times default value has been accessed
def __init__(self, value=None):
self.value = value or self.DEFAULT
def is_default(self):
return self.value is self.DEFAULT
def get_value(self):
if self.is_default():
Parent.COUNTER += 1
return self.value + self.COUNTER
class Child(Parent):
"""Use Parent's value + 1."""
def __init__(self, value=None):
self.value = (value or self.DEFAULT) + 1
这是一个(愚蠢的)用例:
>>> child = Child()
>>> child.is_default()
False
>>> parent = Parent(2)
>>> parent.is_default()
False
>>> default_parent = Parent()
>>> default_parent.is_default()
True
>>> child.get_value()
2
>>> parent.get_value()
2
>>> default_parent.get_value()
2
>>> child.get_value()
3
>>> default_parent.get_value()
3
>>> parent.get_value()
4
我最后的问题是:这是否符合(官方)标准,还是违反了我可能忽略的任何其他惯例?