模块和包笔记

模块

以.py结尾的文件都可以是模块,模块里的定义的变量,函数,类等都可以被导入使用

import 模块名               # 使用这个方式导入的模块名,要使用模块名.的方式调用模块中的方法等
from 模块名 import 工具名    # 使用这种方式可以直接使用导入的方法等,但是要小心重命名冲突问题,建议采用模块名.方式调用
from 模块名 import 工具名  as 别名
from 模块名 import *

import m01

# 模块名.__file__属性用于获取模块的文件路径
print(m01.__file__)        # 获取模块的文件路径,D:\MyPythonWorks\基础部分\module_and_packet\m01.py

# 模块名.__name__属性用于获取模块名,被导入是该属性值为模块名
print(m01.__name__)        # __name__属性用于获取模块名,当模块被主动调用时该属性值为__main__

包就是多个模块文件组成文件夹,每个包和子包中必须要有 __init__.py 文件才能让 Python 将包含该文件的目录当作包。

系统搜索路径设置

系统的模块搜索路径,当模块被导入到python时,解释器会先在内置模块中寻找该模块,没有会根据sys.path列表中的路径进行搜索该模块。

sys是系统标准模块,通过导入该模块,可以查收下系统模块搜索路径,和修改搜索路径。

import sys

print(type(sys.path))               # 类型为列表
print(sys.path)                     # ['D:\\MyPythonWorks\\基础部分\\module_and_packet', 'D:\\MyPythonWorks',.......]
sys.path.insert(0, "C:\\jier771")   # 修改系统搜索列表,添加搜索目录
print(sys.path)                     # ['C:\\jier771', 'D:\\MyPythonWorks\\基础部分\\module_and_packet', 'D:\\MyPythonWorks',.....]

ret = dir(m01)            # dir函数,获取模块中所有定义函数、变量等能定义的名称
print(type(ret))          # <class 'list'>,返回列表
print(ret)                # ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__'
                          # , '__spec__',  'addOne', 'say']      只有addOne和say函数是该模块自定义的,其它都是默认的
print(dir())              # 返回当前模块中定义的名称
系统编译文件

编译过的源文件,为了加速模块的载入,提高文件的载入速度,python会编译编写好的.py文件,放在__pycache__目录中,该目录存放每个模块的编译后版本,编译后名称为模块名.python编译器版本.pyc,如m01.py文件编译后为m01.cpython-38.pyc文件。编译过程是自动化执行的,无源的模块不会检查缓存。

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值