一、模块和包的概念

    什么是模块?

       在python中一个.py文件就是一个模块(Model)。

       模块的分类:内置模块、第三方开源模块、自定义模块。

       模块的意义:简单、可维护、可复用、区分作用域。

    什么是命名空间:

              命名空间是一个从名称到对象的映射,它用于存储变量名及其对应的值。在Python中,每个模块、函数、类以及每个类的实例都有自己独立的命名空间。

             这意味着在不同的命名空间中,即使变量名相同,它们也代表不同的对象。命名空间的主要目的是避免命名冲突,使得每个标识符都能在其所属的命名空间中唯一地标识一个对象。
      命名空间的意义:按逻辑分组、防止同名冲突、提供上下文。

    什么是包?

       包(package)是一个或多个Python模块的文件夹,里面包含一个声明__init__.py的特殊模块。__init__.py中的方法是包的方法,当然也可以为空,它只是标记当前文件夹为包。使用包可以更好分层管理模块。

       结构:

            

package/
       __init__.py
       module1.py
       module2.py

 二、导入格式

         模块导入格式:

import <模块>
import <模块> as <别名>
from <模块> import <名称>
from <模块> import <名称1>,<名称2>,...

        包导入格式:

import <包>
import <包> as <别名>
from <包> import <模块>
from <包> import <模块> as <别名>
from <包> import <模块1> as <别名1>,<模块2> as <别名2>,...
from <包> import <模块1>,<模块2>,...
 
import <包>.<模块>
import <包>.<模块>.<名称>
from <包>.<模块> import <名称>
from <包>.<子包>.<模块> import <名称>

 

三、如何使用

     如何引入模块?

        1,首先创建一个module.py脚本,之后在脚本中写入如下加减乘除公共方法代码。

# module.py
def add(x,y):
    return x + y
def sub(x,y):
    return x - y
def mult(x,y):
    return x * y
def division(x,y):
    return x / y

       2,在另一个脚本中调用1中即module.py模块中的方法

# main.py
import module
add = module.add(2,3)
print(add) 
 
import module as m1
sub = m1.sub(2,3)
print(sub) 
 
from module import mult,division
mult = mult(2,3)
division = division(2,3)
print(mult,division)  

   

  如何引入包:

   1,首先创建包,包中有标志文件__init__.py脚本,它里面有hello方法。同时包中也有module.py脚本如下:

2,在package同级目录下新建test.py脚本,在test.py中引入包就可以调用包中方法如下:

 

 四、如何安装第三方包

      因为有墙的存在部分包安装很慢,所以国内一般使用豆瓣、清华镜像源等网址进行加速安装,命令如下:

         例如:使用清华镜像源安装openpyxl包:

         pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/

    

    镜像地址:

      清华大学 TUNA 镜像源:
      https://pypi.tuna.tsinghua.edu.cn/simple/
      阿里云镜像源:
      https://mirrors.aliyun.com/pypi/simple/
     华为云镜像源:
      https://developer.huaweicloud.com/mirror/#/pypi_simple
      豆瓣(DOUBAN)镜像源:
      https://pypi.douban.com/simple/
     中国科技大学镜像源:
      https://pypi.mirrors.ustc.edu.cn/simple/
     北京外国语大学镜像源:
     https://pypi.mirrors.bfu.edu.cn/simple/