我知道类名的PEP-8约定是ClassName。但我们经常使用小类作为伪命名空间、枚举等。换句话说,不是要实例化的真正类。我们为这些“类”选择了一个小写的命名约定,因为它们实际上是一个名称空间/枚举名称。
有没有其他人对此有自己的风格,或者有其他方法来实现同样的事情?
举个例子:
import urllib2
class config: # pseudo-namespace for module-level config variables
api_url = 'http://example.com/api'
timeout = 1.5
debug = True
class countries: # pseudo-enum
new_zealand = 1
united_states = 2
def func():
if config.debug:
print 'Calling func()'
return urllib2.urlopen(config.api_url)发布于 2010-12-08 02:10:11
对于所有枚举和常量,我更喜欢使用大写的版本。
class COUNTRIES: # pseudo-enum
NEW_ZEALAND = 1
UNITED_STATES = 2如果类名不全是大写的,我还是可以的。因为,不管怎样,它都与枚举值捆绑在一起。我总是像使用Countries.NEW_ZEALAND一样使用它,它告诉我它是一个枚举。
class Countries: # pseudo-enum
NEW_ZEALAND = 1
UNITED_STATES = 2发布于 2010-12-08 02:16:41
您还可以创建一个名为config的模块,其内容如下:
api_url = 'http://example.com/api'
timeout = 1.5
debug = True发布于 2010-12-08 02:13:30
好呀
class PseudoNamespace: pass
config = PseudoNamespace()
config.api_url = 'http://example.com/api'
config.timeout = 1.5
config.debug = True
countries = PseudoNamespace()
config.new_zealand = 1
config.united_states = 2如果你真的关心PEP?
https://stackoverflow.com/questions/4380008
复制相似问题