Версия 1
from m1.m2.m3 import fun
fun() #To access the function
Версия 1 подходит для , если fun
- единственная необходимая функция из дерева m1
и вы можете гарантировать, что никакая другая функция внутри вашего скрипта никогда не будет вызываться fun
.Если что-либо из перечисленного не удовлетворено , не делайте этого , но если есть, сделайте это.
Версия 2
import m1
m1.m2.m3.fun()
Версия 2 подходит для , если вы хотите иметь доступ к всему внутри m1
.Это приводит к большему количеству подробного кода, потому что вы должны все время носить с собой m1
, но это безопаснее и гораздо менее очевидно, чем эквивалент (который не следует поощрять) from m1 import *
.Обратите внимание, что будет выполнен код m1
.
Версия 3
import m1.m2
m1.m2.m3.fun()
Версия 3 - это та, которая должна идти с , если вы хотите иметь доступ к всему внутри m2
, но не выше (не можете m1.more_fun()
).Обратите внимание, что будет выполнен код m2
.
Версия 4
from m1.m2 import m3
m3.fun()
Версия 4 - это та, к которой следует добавить , если вы хотите иметь доступ к всему внутри m3
, но не выше (не можете m1.m2.more_fun()
).Обратите внимание, что код m3
будет выполнен.