【发布时间】:2011-09-14 15:49:51
【问题描述】:
在 Python 中,是否有类似 C 预处理器语句的语句,例如?:
#define MY_CONSTANT 50
另外,我有一大串常量我想导入到几个类中。是否有类似在.py 文件中将常量声明为类似上述语句的长序列并将其导入另一个.py 文件的类似物?
编辑。
文件Constants.py 内容如下:
#!/usr/bin/env python
# encoding: utf-8
"""
Constants.py
"""
MY_CONSTANT_ONE = 50
MY_CONSTANT_TWO = 51
myExample.py 写着:
#!/usr/bin/env python
# encoding: utf-8
"""
myExample.py
"""
import sys
import os
import Constants
class myExample:
def __init__(self):
self.someValueOne = Constants.MY_CONSTANT_ONE + 1
self.someValueTwo = Constants.MY_CONSTANT_TWO + 1
if __name__ == '__main__':
x = MyClass()
编辑。
来自编译器,
NameError: "全局名称 'MY_CONSTANT_ONE' 未定义"
function init in myExample at line 13 self.someValueOne = 常量.MY_CONSTANT_ONE + 1 份 输出程序以代码 #1 退出 0.06 秒后。
【问题讨论】:
-
不,没有预处理器。不,你不会在 Python 中编写 C 代码,甚至试图找到相似之处。
-
这不是完整的追溯。你是如何运行它的?
python myExample.py应该提供包含文件名和<module>作为顶层的错误的回溯。另外,MY_CONSTANT_ONE不是 引用作为全局名称 - 真的很奇怪。三重检查这些确实是您正在运行的文件(也许将它们转换为 ASCII 并去除# encoding: utf8位)。 -
@All:谢谢,我现在似乎很好 - 还不知道为什么,但没关系:)。
标签: python constants python-import