URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4583
[ Назад ]

Исходное сообщение
"непонятное сообщение об ошибке"

Отправлено mstx , 24-Авг-05 19:20 
Привет!

Я пока еще только начинаю изучать python потому вопрос может показаться глупым поэтому заранее прошу прощения.

Захотел разобраться с md5 и у меня состоялся такой диалог с питоном:

>>> import md5
md5
>>> md5.new("Nobody inspects the spammish repetition").digest()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'module' object has no attribute 'new'

Как видите текст я взял прямо из туториала но почему у меня вылазит ошибка??


Содержание

Сообщения в этом обсуждении
"непонятное сообщение об ошибке"
Отправлено ihor , 25-Авг-05 14:06 
1) если сипользуете конструкцию 'import md5'. то на то что лежит в модуле надо ссылаться используя 'полное' имя: 'md5.md5'. Для того, чтобы импортировать некоторые (или все имена) из модуля в текущее пространство имён, нужно использовать конструкцию 'from md5 import ...', напр. 'from md5 import *'
2) в Python не используется '.new', обьекты создаются при помощи 'вызова' класса, которому в качестве аргументов передаются аргументы конструктора, т.е. в Вашем случае должно быть:
# ======================
import md5
md5.md5("Nobody inspects the spammish repetition").digest()

или
# ====================
from md5 import md5
md5("Nobody inspects the spammish repetition").digest()

или
# ====================
from md5 import *
md5("Nobody inspects the spammish repetition").digest()


"непонятное сообщение об ошибке"
Отправлено mstx , 25-Авг-05 18:59 
Благодарю за ответ!
Теперь мне все стало понятно!

"непонятное сообщение об ошибке"
Отправлено mstx , 25-Авг-05 19:52 
Рано радовался!
Вот что выходит:


#------------------------------------------
import md5
md5.md5("Nobody inspects the spammish repetition").digest()

>python -u test.py
md5
Traceback (most recent call last):
  File "test.py", line 2, in ?
    md5.md5("Nobody inspects the spammish repetition").digest()
AttributeError: 'module' object has no attribute 'md5'

#------------------------------------------
from md5 import md5
md5("Nobody inspects the spammish repetition").digest()

>python -u test.py
md5
Traceback (most recent call last):
  File "test.py", line 1, in ?
    from md5 import md5
ImportError: cannot import name md5

#------------------------------------------
from md5 import *
md5("Nobody inspects the spammish repetition").digest()

>python -u test.py
md5
Traceback (most recent call last):
  File "test.py", line 2, in ?
    md5("Nobody inspects the spammish repetition").digest()
NameError: name 'md5' is not defined


"непонятное сообщение об ошибке"
Отправлено ihor , 26-Авг-05 19:05 
странно, у меня всё работает. у Вас, похоже, в интерактивном режиме - тоже. или нет? попробуйте запустить такой скрипт:
# ==============
import md5
print dir(md5)