main2.py
# ### import 导入包
"""
文件夹:包 文件:模块
当引入包时,会自动指定包中__init__.py的初始化文件,对包进行初始化
"""
# 1.import引入包的语法
# import package1
# 导入包的属性
# print(package1.ceshi1)
# 导入包下的某个模块
# 方法一
# import package1.mywork
# package1.mywork.myjoin()
# 方法二 as 起别名
# import package1.mywork as pm
# pm.myjoin()
# 方法三 把要引入的模块放到初始化文件当中进行引入,简化操作
# import package1
"""os.path.getsize()"""
# package1.mywork.mygetsize()
# 2.from .. import .. 引入包中具体的成员的语法
# 引入包中的属性
# from package1 import ceshi2
# print(ceshi2)
# 可以指定*号的范围 用__all__
# from package1 import *
# print(ceshi2) error
# print(ceshi3)
# 可以用as起别名
# from package1 import ceshi2 as c2,ceshi1 as c1
# print(c1)
# print(c2)
# 引入包中的模块
# from package1 import mywork
# mywork.myjoin()
# 引入包中模块下的成员
# from package1.mywork import mygetsize
# mygetsize()
# 3.单入口模式
"""使用相对路径进行导入"""
import package2.pkg1.pkg1_m2 as ppp2
# print(package2.pkg1.pkg1_m2.ceshi100)
print(ppp2.ceshi100)
package2 文件夹下的 pkg_module1.py
ceshi201 = "ceshi201"
ceshi202 = "ceshi202"
package2 文件夹下的 pkg_module2.py
package2 文件夹下的 pkg1 文件夹下的 pkg1_m1.py
ceshi103 = "ceshi103"
ceshi104 = "ceshi104"
package2 文件夹下的 pkg1 文件夹下的 pkg1_m2.py
# ### 单入口模式
"""
相对路径
. 代表当前路径
.. 代表上一级路径
相对路径不能被解释器直接引入,路径找不到.
分模块中的文件不能直接执行,必须通过导入到主入口文件,
间接执行才能找到对应的路径
含有相对路径的分模块不能直接执行,得通过主入口文件间接执行.
"""
ceshi100 = "ceshi100"
ceshi101 = "ceshi101"
# 相对于当前路径找pkg1_m1模块
from . import pkg1_m1
print(pkg1_m1.ceshi103)
# 相对于当前路径pkg1_m1模块中引入ceshi104成员
from .pkg1_m1 import ceshi104
print(ceshi104)
# 找上一级中的一个模块
from .. import pkg_module1
print(pkg_module1.ceshi201)
# 找上一级中的一个模块里的一个成员
from ..pkg_module1 import ceshi202
print(ceshi202)
# 找上一级包中的具体某个模块
from ..pkg2 import pkg2_m2
print(pkg2_m2.ceshi300)
# 找上一级包中的具体某个模块里的具体的某个成员
from ..pkg2.pkg2_m2 import ceshi301
print(ceshi301)
"""
# .是无限的
. 当前路径
.. 上一级路径
... 上一级的上一级
.... 上一级的上一级的上一级
..... (这里的点是无限的)
from .......................................... import 模块
"""
package2 文件夹下的 pkg2 文件夹下的 pkg2_m1.py
package2 文件夹下的 pkg2 文件夹下的 pkg2_m2.py
ceshi300 = "ceshi300"
ceshi301 = "ceshi301"