什么';初始化和跨Python类使用常量的最佳方法是什么?

什么';初始化和跨Python类使用常量的最佳方法是什么?,python,Python,下面是我如何声明常量并在不同的Python类中使用它们: # project/constants.py GOOD = 1 BAD = 2 AWFUL = 3 # project/question.py from constants import AWFUL, BAD, GOOD class Question: def __init__(self): ... 以上是存储和使用contant值的好方法吗?我意识到过了一段时间,常量文件会变得相当大,我可以在任何给定的文件

下面是我如何声明常量并在不同的Python类中使用它们:

# project/constants.py
GOOD = 1
BAD = 2
AWFUL = 3

# project/question.py
from constants import AWFUL, BAD, GOOD

class Question:
    def __init__(self):
        ...
以上是存储和使用contant值的好方法吗?我意识到过了一段时间,常量文件会变得相当大,我可以在任何给定的文件中显式导入10+个常量。

为什么不使用

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
来自python zen:

名称空间很好。让我们做更多的这些

编辑:除非,当你引用时,你应该包括一个参考并检查它,因为正如其他人所指出的,它应该是:

名称空间是一个非常好的主意——让我们做更多的工作吧


这一次,我实际上是从源代码复制的:

您有几个选项:

  • 用一个常量文件按现在的方式执行
  • 使用平面文件并对其进行一次解析,传递字典/类
  • 查询到数据库
  • 从开销的角度来看,1和2大致相同。至于您关于导入特定常量的问题,使用以下约定之一要容易得多:

    • 导入常量;一些函数(常量.可怕)
    • 从常量导入*;有些功能(糟糕)

    如果常数绑定到特定类,并在该类中私自使用,则您还可以选择使其特定于该类:

    class Foo(object):
       GOOD = 0
       BAD = 1
       WTF = -1
    
       def __init__(self...
    

    然后你就可以走了。

    尝试查看以下链接(其中一个链接包含如何实现实际常量的活动状态收据):


    首先,python中没有常量变量,其次,全局变量是在多个模块中使用还是仅在一个模块中使用?它们在该项目中的不同类中使用。。。。这也是一个非常恰当的表达方式。@Daniel Roseman:哎哟。我被纠正了。我会相应地编辑我的帖子!减少键入的另一个方法是使用“将常量作为CN导入”和“print(CN.GOOD)”等。有一刻我想,常量是一个实际的python库,这会多么好,哈哈。我没有读这个问题。:-)我对关键静态关键数据有恒量,我想在使用它之前读取它的demo ini文件并将其分配给变量,我尝试编写方法但无法在定义中调用,也尝试使用init方法但失败。我对python还是新手。