8

我正在构建一个包含各种类和函数的解决方案,所有这些类和函数都需要访问一些全局常量才能正常工作。由于 python 中没有const,您认为设置一种全局常量的最佳实践是什么。

global const g = 9.8 

所以我正在寻找上述的一种

编辑:怎么样:

class Const():
    @staticmethod
    def gravity():
        return 9.8

print 'gravity: ', Const.gravity()

?

4

2 回答 2

13

你不能在 Python 中定义常量。如果你找到某种黑客来做这件事,你只会让每个人都感到困惑。

要做那种事情,通常你应该有一个模块 -globals.py例如你在你需要它的任何地方导入

于 2013-08-14T06:52:56.800 回答
10

一般约定是用大写和下划线定义变量,而不是改变它。喜欢,

GRAVITY = 9.8

但是,可以使用 Python 在 Python 中创建常量namedtuple

import collections

Const = collections.namedtuple('Const', 'gravity pi')
const = Const(9.8, 3.14)

print(const.gravity) # => 9.8
# try to change, it gives error
const.gravity = 9.0 # => AttributeError: can't set attribute

对于,请参阅此处namedtuple的文档

于 2016-07-20T11:04:58.213 回答