python - 在 Python 中,如何在脚本而不是解释器中使用 decimal 模块?

标签 python decimal

我正在使用 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/

相关文章:

python - 处理 HTMLParser.HTMLParseError 异常和测试用例

python - 使用 data- 属性抓取元素的内容 - Python BeautifulSoup

Python Selenium - 'Unable to locate element' 可见后

mysql - Rails - MySQL 错误 "Out of range value",即使范围应该没问题?

bash - 如何在 Bash 中强制对 printf 参数进行十进制解释而不是八进制

parsing - 如何在 Haskell 中将小数部分解析为有理数?

Python mongoengine - 获取最后一个条目的ID

python - Scrapy - 使用 JOBDIR 获取重复项

java - 为什么 Java 中的十六进制实数需要指数

php - MySQL -- 将 T1 中的 VARCHAR 值插入到 T2 中的 DECIMAL 字段中