Привет!Я пока еще только начинаю изучать 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'Как видите текст я взял прямо из туториала но почему у меня вылазит ошибка??
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()
Благодарю за ответ!
Теперь мне все стало понятно!
Рано радовался!
Вот что выходит:
#------------------------------------------
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
странно, у меня всё работает. у Вас, похоже, в интерактивном режиме - тоже. или нет? попробуйте запустить такой скрипт:
# ==============
import md5
print dir(md5)