Найти - Пользователи
Полная версия: Рекурсивное импортирование модулей?..
Начало » Флейм » Рекурсивное импортирование модулей?..
1
Эксперементатор
Несколько раз на форуме новичками(как-то раз и мной, каюсь :) ) поднималась подобная тема:
http://www.python.su/forum/viewtopic.php?id=5541 :)
То есть проблема, когда называешь файл с программой filename.py и в нём же пытаешься импортировать модуль filename :)
Я вот тут подумал - а почему питон не уходит в рекурсию?.. Ведь по логике он должен работать так - мы ему передаём файл с программой filename.py-> python натыкается на строку import filename.py -> начинает искать такой модуль -> первое, где находит - в папке с программой(саму программу) - > так как для корректной работы модуля, необходимо предоставить модулю те модули, которые в нём импортируются, python проверяет этот файл, натыкается опять на строчку import filename.py -> начинает искать модуль filename.py -> находит в папке с программой -> ну и так далее :) :)
Почему же этого не происходит?..
SvartalF
Защита от дурака, например?
PooH
Модуль импортируется один раз. Во второй он уже есть в пространстве имен и не импортируется.
Эксперементатор
2 PooH, ясно… :) А то было бы прикольно.. :)
crchemist
Эксперементатор
когда называешь файл с программой 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]$
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB