首页 > 其他分享 >模块

模块

时间:2022-10-18 15:35:26浏览次数:31  
标签:__ 文件 py 导入 模块 import

索引取值与迭代取值差异

    1. 索引取值可以随意重复取值,但是对于无序容器不能使用

    2. 迭代取值比较通用但是只能从前往后不能回退。

模块的介绍       

    本质:内部具有一定功能的py文件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      定义:模块式一系列功能的结合体(使用模块就能获得该功能)

    模块的分类:

          1.内置模块:python解释器自带的

          2.自定义模块:我们自己写的

          3.第三方模块:别人写的,需要下载

     模块的表现形式:

          1. py文件或者包含多个py文件的文件夹内

          2.已被编译为共享库或DLL的c与c++扩展(了解)

          3.使用C编写并链接到python解释器的内置模块(了解)

    注意事项:

          1.项目py文件的命名必须是英文的(模块名称也是纯英文)

          2.py文件导入不需要考虑后缀

模块的导入   

# 方式1
import 模块名
             # 优点:可以使用所有模块内名字,不会产生冲突
             # 缺点:没有隐私可言
 
# 方式2
from 模块名 import 模块名内的名字
             # 优点:可以使用指定名字且不用加模块名前缀,且隐私性好
             # 缺点:名字容易产生冲突

     知识补充:

          1.给模块起别名

# 1. 给模块取别名
from xx import money as my_md    # 主要用于多个模块中内的名字相同(money)
import xx as my_md      # 主要用于xx位置文件名复杂时使用
# 2.导入多个名字
# 同个模块内的
import xx1,xx2
from md import xx1,xx2
# 不同模块中的
import os
import sys
# 3.全导入
from md import * # *表示所有
在模块文件中可以使用__all__=[]来控制可以导入的名字
# 4.重复导入模块时解释器只会导入一次

循环导入

    1. 两个文件彼此互相导入称为循环导入

    2. 导入时尽量避免循环导入,一定要进行就让所有名字提前做好准备。

    3. 如果循环导入没有准备好就使用则会报错

文件类型的判断

    1. 所有的py文件都自带__name__的内置名

 #  执行时:  __name__的结果是__main__
 #  被导入时:__name__结果是模块名    

    2.__name__一般用于开发模块的作者测试自己的代码,或者项目启动脚本

if __name__=='__main__'    

    3.pycharm中可以直接编写main按tab键自带补全

模块的查找顺序

    内存>>>内置>>>sys.path

    

# 1.导入一个文件,在运行时删除文件,依然会继续运行,这是因为在内存中也存了一份,但是运行结束在启动就会报错
# 2.内置中自定义的模块尽量不要和内置模块名产生冲突
# 3.我们可以使用sys.path()将模块所在的路径添加到执行文件的环境中

 绝对导入与相对导入   

# 1.绝对导入:基于项目根目录往下一层层查找(推荐使用,结构清晰)     
      from mymd.aaa.bbb.ccc.ddd import name

# 2.相对导入:基于当前所在文件的路径查找(不推荐使用)
      .       # 当前路径所在目录
      ..      # 上一级目录
      from . import b
      

包的概念

    定义:包指的是多个py文件的集合(文件夹)

    注意:在python2中要求包中必须含有__init__.py的文件夹,python3

中并未做出该要求

 

标签:__,文件,py,导入,模块,import
From: https://www.cnblogs.com/juzijunjun/p/16800662.html

相关文章