Python中模块的概念

"""
模块搜索顺序
sys.path 查看搜索顺序
"""

"""
编程语言中,库、包、模块是同一种概念,是代码组织方式

包模块 Python的源代码文件
包package 模块组织在一起的和包名同名的目录及其相关文件

improt 模块名 找到指定的模块 加载和初始化它 生成模块对象
在import所在的作用域的局部命名空间中 增加名称和上一步创建的对象关联
导入顶级模块 其名称会加入到本地名词空间中并绑定到其模块对象

"""
import os.path as osp
import functools
print(dir())
print(functools)
print(functools.wraps)

from pathlib import Path
print(Path,id(Path))

import pathlib as pl
print(dir())
print(pl)
print(pl.Path,id(pl.Path))
print("t2")

import test1

b = test1.A()
b.show()
print(test1.A.__dict__)
"""
所有加载的模块都会记录在sys.modules中,存储已经加载过的所有模块的字典


模块运行
__name__,每个模块都会定义一个__name__特殊变量来存储当前模块的名称,如果不指定,则
默认为源代码的文件名词,如果是包则有限定名

解释器初始化的时候,会初始化sys.modules字典(保存已经加载的模块),创建builtins(全局函数
、常量)模块 __main__模块 sys模块 已经模块搜索路径sys.path
Python是脚本语言


"""
print(__name__)

"""
模块的属性
__file__ 字符串,源文件路径
__cached__ 字符串,编译后的字节码文件路径
__spec__ 显示模块的规范
__name__ 模块名
__package__ 当模块是包,同__name__;否则,可以设置为顶级模块的空字符串
"""
# import m.x
# print(dir(m))
# print(type(m))
# print(m.x)
# print(m.y)
# print(m.__cached__)
"""m也是文件 可以导入
绝对导入congsys.path import * 下划线的不导入"""

猜你喜欢

转载自www.cnblogs.com/ergePython/p/11455582.html