Форум сайта python.su
Несколько раз на форуме новичками(как-то раз и мной, каюсь :) ) поднималась подобная тема:
http://www.python.su/forum/viewtopic.php?id=5541 :)
То есть проблема, когда называешь файл с программой filename.py и в нём же пытаешься импортировать модуль filename :)
Я вот тут подумал - а почему питон не уходит в рекурсию?.. Ведь по логике он должен работать так - мы ему передаём файл с программой filename.py-> python натыкается на строку import filename.py -> начинает искать такой модуль -> первое, где находит - в папке с программой(саму программу) - > так как для корректной работы модуля, необходимо предоставить модулю те модули, которые в нём импортируются, python проверяет этот файл, натыкается опять на строчку import filename.py -> начинает искать модуль filename.py -> находит в папке с программой -> ну и так далее :) :)
Почему же этого не происходит?..
Офлайн
Защита от дурака, например?
Офлайн
Модуль импортируется один раз. Во второй он уже есть в пространстве имен и не импортируется.
Офлайн
2 PooH, ясно… :) А то было бы прикольно.. :)
Офлайн
Эксперементатор
когда называешь файл с программой filename.py и в нём же пытаешься импортировать модуль filename
PooHв даному випадку двічі - як __main__ і як module:
Модуль импортируется один раз. Во второй он уже есть в пространстве имен и не импортируется.
[crchemist@205-154-179-94 tmp]$ cat gh.py
import gh
import gh
import gh
print __name__
[crchemist@205-154-179-94 tmp]$ python gh.py
gh
__main__
[crchemist@205-154-179-94 tmp]$
Офлайн