Python十进制和导入:如何在没有';导入*';?

Python十进制和导入:如何在没有';导入*';?,python,python-2.7,Python,Python 2.7,当我开始学习Python时,作者强烈建议不要使用模块导入中的*,并指出这是一个坏习惯 我试图用十进制软件包把数字四舍五入。如何在不使用“从十进制输入*”的情况下对数字进行四舍五入?即使对于十进制,也使用“从十进制导入*” 除其他外,我尝试了以下方法: #!/usr/bin/python import sys import decimal print "UPDATE: Price is %s" % (decimal.Decimal(4233/3600).quantize(decimal.Deci

当我开始学习Python时,作者强烈建议不要使用模块导入中的
*
,并指出这是一个坏习惯

我试图用十进制软件包把数字四舍五入。如何在不使用“从十进制输入*”的情况下对数字进行四舍五入?即使对于十进制,也使用“从十进制导入*”

除其他外,我尝试了以下方法:

#!/usr/bin/python
import sys
import decimal

print "UPDATE: Price is %s" % (decimal.Decimal(4233/3600).quantize(decimal.Decimal('.000001'), round=ROUND_UP))
不幸的是,我得到了以下错误:

回溯(最近一次调用上次):文件 “/calculate_hourly_stats.py”,第4行,在 打印“更新:价格为%s%”(十进制.decimal(4233/3600))。量化(十进制.decimal('.000001'), round=round\u UP)name错误:未定义名称“round\u UP”


在decimal.py中,四舍五入是一个常量。如何从decimal导入常量?

这里的
decimal
模块没有什么特别之处-
四舍五入
只是其中的另一个名称,与
decimal
相同。所以你可以说
decimal.ROUND\u
。或

from decimal import ROUND_UP
然后使用普通
四舍五入

顺便说一下,文档中的其他内容在大量使用
decimal
的程序中很常见:

from decimal import Decimal as D

然后您可以编写,例如,D(“1.23”)而不是
十进制。十进制(“1.23”)
因为您已经导入了
十进制
,请将该常量称为
十进制。四舍五入

从十进制输入到四舍五入的
也没有问题。样式指南警告不要盲目地导入所有内容,而不要导入特定的名称