Python风格:命名空间使用小写类名?
我知道在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)
4 个回答
1
为什么不呢
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的话?
4
你还可以创建一个叫做 config
的模块,里面可以放入以下内容:
api_url = 'http://example.com/api'
timeout = 1.5
debug = True
5
对于所有的枚举和常量,我更喜欢使用大写的形式。
class COUNTRIES: # pseudo-enum
NEW_ZEALAND = 1
UNITED_STATES = 2
如果类名不是全部大写,我也觉得没问题。因为无论如何,它都是和枚举值关联在一起的。我总是会像这样使用它:Countries.NEW_ZEALAND
,这让我知道它是一个枚举。
class Countries: # pseudo-enum
NEW_ZEALAND = 1
UNITED_STATES = 2