我正在构建一个包含各种类和函数的解决方案,所有这些类和函数都需要访问一些全局常量才能正常工作。由于 python 中没有const,您认为设置一种全局常量的最佳实践是什么。
global const g = 9.8
所以我正在寻找上述的一种
编辑:怎么样:
class Const():
@staticmethod
def gravity():
return 9.8
print 'gravity: ', Const.gravity()
?
我正在构建一个包含各种类和函数的解决方案,所有这些类和函数都需要访问一些全局常量才能正常工作。由于 python 中没有const,您认为设置一种全局常量的最佳实践是什么。
global const g = 9.8
所以我正在寻找上述的一种
编辑:怎么样:
class Const():
@staticmethod
def gravity():
return 9.8
print 'gravity: ', Const.gravity()
?
你不能在 Python 中定义常量。如果你找到某种黑客来做这件事,你只会让每个人都感到困惑。
要做那种事情,通常你应该有一个模块 -globals.py例如你在你需要它的任何地方导入
一般约定是用大写和下划线定义变量,而不是改变它。喜欢,
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的文档