我正在使用 Python 2.5.4 并尝试使用 decimal 模块。当我在解释器中使用它时,我没有问题。例如,这有效:
>>> from decimal import *
>>> Decimal('1.2')+ Decimal('2.3')
Decimal("3.5")
但是,当我输入以下代码时:
from decimal import *
print Decimal('1.2')+Decimal('2.3')
在一个单独的文件(称为 decimal.py)中并将其作为一个模块运行,解释器提示:
NameError: name 'Decimal' is not defined
我也试过将这段代码放在一个单独的文件中:
import decimal
print decimal.Decimal('1.2')+decimal.Decimal('2.3')
当我将它作为一个模块运行时,解释器说:
AttributeError: 'module' object has no attribute 'Decimal'
这是怎么回事?
最佳答案
您将脚本命名为 decimal.py,因为脚本所在的目录是模块查找路径中的第一个目录,您的脚本将被找到并导入。您的模块中没有任何名为 Decimal 的东西会导致引发此异常。
要解决此问题,只需重命名脚本即可,只要您只是玩玩 foo.py、bar.py、baz.py、spam.py 或 eggs.py 之类的名称,都是不错的选择。
关于python - 在 Python 中,如何在脚本而不是解释器中使用 decimal 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3124905/