首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python风格:"namespaces“的小写类名?

Python风格:"namespaces“的小写类名?
EN

Stack Overflow用户
提问于 2010-12-08 02:06:47
回答 4查看 1.7K关注 0票数 6

我知道类名的PEP-8约定是ClassName。但我们经常使用小类作为伪命名空间、枚举等。换句话说,不是要实例化的真正类。我们为这些“类”选择了一个小写的命名约定,因为它们实际上是一个名称空间/枚举名称。

有没有其他人对此有自己的风格,或者有其他方法来实现同样的事情?

举个例子:

代码语言:javascript
复制
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)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-08 02:10:11

对于所有枚举和常量,我更喜欢使用大写的版本。

代码语言:javascript
复制
class COUNTRIES:  # pseudo-enum
    NEW_ZEALAND = 1
    UNITED_STATES = 2

如果类名不全是大写的,我还是可以的。因为,不管怎样,它都与枚举值捆绑在一起。我总是像使用Countries.NEW_ZEALAND一样使用它,它告诉我它是一个枚举。

代码语言:javascript
复制
class Countries:  # pseudo-enum
    NEW_ZEALAND = 1
    UNITED_STATES = 2
票数 5
EN

Stack Overflow用户

发布于 2010-12-08 02:16:41

您还可以创建一个名为config的模块,其内容如下:

代码语言:javascript
复制
api_url = 'http://example.com/api'
timeout = 1.5
debug = True
票数 4
EN

Stack Overflow用户

发布于 2010-12-08 02:13:30

好呀

代码语言:javascript
复制
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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4380008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档