1、python同级目录及子目录模块引入

2个模块在同一个包内时(即引入和被引入的2个py文件在同一个目录下),直接引入模块名

1、引入与被引入模块或包在同一目录下时,直接引入模块名或者包名import modulename.py或者import packagename
示例:
文件层级:

python 怎么避免两个类互相引用 python相互引用模块_子目录

 

①模块print_parameters.py引入parameters.py模块内变量或函数时,

import parameters #使用时,module_name.variable_name(模块名.变量名)
from parameters import * #使用时,直接variable_name(变量名)
from parameters import variable_name #使用时,直接variable_name(变量名或方法)


如:

print(parameters.number+1) #number为parameters.py参数内的变量

 

②模块print_letter.py引入test176包下__init__.py模块内变量或函数时,

import test176
from test176 import *
from test176 import variable_name #使用时,直接variable_name(变量名或方法)

 

③模块print_letter.py引入test176包下letter.py模块内变量或函数时,

import test176.letter
from test176.letter import *
from test176.letter import variable_name #使用时,直接variable_name(变量名或方法)

④模块print_word.py引入包test下__init__.py模块内变量或函数时,

import __init__
from __init__ import *
from __init__ import variable_name #使用时,直接variable_name(变量名或方法)

 

2、引入父级模块或者包

---引入父级目录
目录结构:

python 怎么避免两个类互相引用 python相互引用模块_变量名_02

 

print_father.py引入上级目录father.py模块的sentence变量,代码如下:

#注:需要引入的文件 E:\test\test176\test186\grandfather.py
import sys
sys.path.append(r'E:\test\test176\test186')               #python搜索环境变量中增加需要引入模块所在路径
from grandfather import sentence
print(sentence)-----------------------
print_grandfather.py引入上级目录grandfather.py模块的sentence变量,代码如下:import sys
sys.path.append(r'E:\test\test176')
from grandfather import sentence
print(sentence)-----------------------------------------------------------------------引入父级子目录
引入父级子目录,并且把增加变量写在包所属模块__init__.py内

目录结构:

 

python 怎么避免两个类互相引用 python相互引用模块_目录结构_03