Как именно работает импорт Python?

У меня есть две конкретные ситуации, когда я не понимаю, как импорт работает в Python:

1-я конкретная ситуация:

Когда я импортирую один и тот же модуль в два разных скрипта Python, модуль не импортируется дважды, верно? В первый раз, когда Python сталкивается с ним, он импортируется, а во второй раз он проверяет, был ли модуль импортирован, или делает копию?

2-я конкретная ситуация:

Рассмотрим следующий модуль с именемbla.py:

a = 10

И затем у нас есть foo.py, модуль, который импортируетbla.py:

from bla import *

def Stuff ():
    return a

И после этого у нас есть скрипт с именем bar.py, который выполняется пользователем:

from foo import *
Stuff() #This should return 10 
a = 5
Stuff()

Здесь я не знаю :Stuff()возвращает 10 или 5?

51
задан corazza 28 September 2016 в 07:00
поделиться