Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2009 07:50:14

Эксперементатор
От:
Зарегистрирован: 2009-08-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсивное импортирование модулей?..

Несколько раз на форуме новичками(как-то раз и мной, каюсь :) ) поднималась подобная тема:
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 Ноя. 7, 2009 09:21:10

SvartalF
От:
Зарегистрирован: 2008-06-29
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсивное импортирование модулей?..

Защита от дурака, например?



Офлайн

#3 Ноя. 7, 2009 09:43:07

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Рекурсивное импортирование модулей?..

Модуль импортируется один раз. Во второй он уже есть в пространстве имен и не импортируется.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Ноя. 7, 2009 10:17:40

Эксперементатор
От:
Зарегистрирован: 2009-08-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсивное импортирование модулей?..

2 PooH, ясно… :) А то было бы прикольно.. :)



Офлайн

#5 Ноя. 7, 2009 17:16:04

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсивное импортирование модулей?..

Эксперементатор
когда называешь файл с программой 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]$



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version