模块:

​ 什么是模块:一个.py文件就是模块,节省代码,容易维护,组织结构更清晰

​ 模块的运行方式:

​ 脚本方式:直接用解释器执行,或者pycharm中右键运行。

​ 模块方式:被其他的模块导入,为导入他的模块提供资源(变量,函数定义,)

模块的分类:

​ 内置模块:标准库,python解释器自带的,time,os,sys,等等200多种

​ 第三方库(模块):各种大神写的模块,通过pip install…安装的6000多种

​ 自己写的模块,自定义模块

引用模块发生三件事:

​ 1,import tbjx 将haiyang.py文件(变量,函数名)加载到内存

​ 2,在内存中创建一个以太tbjx命名的名称空间

​ 3,通过haiyang.xx名称空间的名字.等方式引用此模块的名字(变量,函数名)

引用多个模块:

​ import os

​ import sys #引用多个模块时,要逐行引用

import haiyang:

​ 当我引用tbjx模块的时候,实际上将tbjx.py执行一遍,加载到内存

​ 通过import引用的模块,他有自己的独立名称空间,与当前执行文件没有关系。

​ 执行文件:02 模块 import

​ 被引用文件(模块):haiyang.py

​ 为模块起别名:

​ import haiyang as ab

​ print(ab.name)

from haiyang import *:

示例1:被引用文件(模块)all进行限制引用者使用范围

引用者:
from haiyang import *

模块:
__all__ = ['name']
name = "huhaiyang"

工作中错误示例:

from haiyang import name:
from haiyang import *
相当于从haiyang模块的全局空间中将name变量与值得对应关系,复制到当前执行文件的全局空间中
引用模块中的函数,如果此函数修改一些变量,这些变量还是从此模块中寻找,不会改变当前执行文件变量
    优点:调用更方便
    缺点:引用变量跟当前文件变量冲突
    

py文件的两种功能:

​ 1.py文件的第一个功能:执行文件(承载代码)脚本

​ 直接打印__name__返回__main__

​ 2.py文件的第二个功能:模块(被动执行文件)

​ 直接打印__name__返回模块名

作用:当你在被执行文件中,引用模块后,返回的是模块名,模块中进行了if __name__ == '__main__':

​ 判断的话,被执行者是不会执行此函数(控制函数自动调用),模块中可以进行测试代码

寻找一个模块的路径:

​ 内存中 >>> 内置模块 >>> sys.path

​ 只要这三个地方存在,就可以进行加载这个模块

不同目录加载模块;

​ 将路径加载到sys.path中,以绝对路径导入。

  • import sys
    sys.path.append(r'E:\Python-学习\')
    import haiyang
    
    print(haiyang.name)

版权声明:本文为haiyang11原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/haiyang11/p/11091477.html