В Python, как Вы используете десятичный модуль в сценарии, а не интерпретаторе?

Я использую Python 2.5.4 и пытаюсь использовать десятичный модуль. Когда я использую его в интерпретаторе, у меня нет проблемы. Например, это работает:

>>> 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: имя 'Десятичное число' не определяется

Я также пытался поместить этот код в отдельный файл:

import decimal
print decimal.Decimal('1.2')+decimal.Decimal('2.3') 

Когда я выполняю его как модуль, интерпретатор говорит:

AttributeError: объект 'модуля' не имеет никакого атрибута 'Десятичное число'

Что продолжается?

10
задан Paul D. Waite 12 March 2013 в 11:03
поделиться

2 ответа

Вы назвали свой скрипт decimal.py, поскольку каталог, в котором он находится, является первым в пути, по которому модули ищут, ваш скрипт найден и импортирован. В вашем модуле нет ничего с именем Decimal, из-за которого возникает это исключение.

Чтобы решить эту проблему, просто переименуйте скрипт, пока вы просто играете с чем-то вроде foo.py, bar.py, baz.py, spam.py или egg.py - хороший выбор для имени.

18
ответ дан 3 December 2019 в 17:19
поделиться

Это прекрасно работает как есть для меня на Python 2.5.2

from decimal import *
print Decimal('1.2')+Decimal('2.3')

Я бы рекомендовал вам указать, что вы хотите использовать из десятичных

from decimal import Decimal
print Decimal('1.2')+Decimal('2.3')

В вашем другом примере вы должны использовать

import decimal
print decimal.Decimal('1.2')+decimal.Decimal('2.3') 
5
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: