一、python 模块
Python模块(module):一个Python文件(.py)就是一个模块,模块是Python程序的基本组织单位。在模块中可以定义变量、函数、类,以及可执行的代码。

1.导入模块

导入模块 代码;
-import 模块名
-import 模块名 as 别名
-from 模块名 import 功能名
-from 模块名 import 功能名 as 别名
-from 模块名 import *
python
# 导入模块
import random as rd
for i in range(100):
print(rd.randint(1, 100))
总结:
1.什么是模块?有什么用?
模块:就是一个Python文件(.py),其中就包含了变量、函数、类,以及可执行的代码。
作用:提高代码复用性,降低开发门槛。
2.导入模块的常用语法?
- import 模块名 [ as 别名]
- from 模块名 import 功能名 [ as 别名]
- from 模块名 import *
二、自定义模块
当开发一些复杂的项目,为了让项目结构更清晰,更便于项目的为负管理 及 代码的复用,可能会把一个项目拆分为若干个模块。
每一个Python文件都可以作为一个模块,模块的名字就是文件的名字。
代码:
python
#常量
PI = 3.1415926
NAME = "NAME常量"
# 函数
def log_separator1():
print("- " *30) #重复输出
def log_separator2():
print("+ " *30)
def log_separator3():
print("# " *30)
def log_separator4():
print("* " *30)
#测试函数
# __name__ :python 中内置变量,表示的当前模块的名字(直接运行当前模块, 值为 __main__,当该模块被导入时,__name__ 的值就是模块名字,my_fun)
# __main__ :当前模块的名字
#print(__name__)
if __name__ == "__main__":
log_separator1()
#log_separator1()
1)name 变量用法
python
if __name__ == "__main__":
log_separator1()
2)all 用法
all 是一个模块级别的特殊变量,用于指定 from 模块名 import * 是会导入那些功能(*通配了那些功能)。
python
# 指定 from ... import * 导入的是那些功能
#__all__ = ["log_separator1", "log_separator3", "PI"]
__all__ = ["log_separator1", "log_separator3", "PI"]
#常量
PI = 3.1415926
NAME = "NAME常量"
# 函数
def log_separator1():
print("- " *30) #重复输出
def log_separator2():
print("+ " *30)
def log_separator3():
print("# " *30)
def log_separator4():
print("* " *30)
#测试函数
# __name__ :python 中内置变量,表示的当前模块的名字(直接运行当前模块, 值为 __main__,当该模块被导入时,__main__ 的值就是模块名字,my_fun)
if __name__ == "__main__":
log_separator1()
#from my_fun improt * __all__
总结:
name 与__all__ 2个特殊变量 的作用是什么?
- name 是Python中非常重要的内置变量,表示的是当前模块的名称。
当模块直接运行时:__name__的值为"main "。
当模块被导入时:__name__等于模块的文件名(不含.py后缀)。 - all:控制import * 导入哪些功能。
三、python软件包package
包:本质就是一个文件夹,该文件夹中可以包含若干python模块(.py文件),文件夹下还包含了一个__init__.py。
作用:模块文件较多时,用来管理多个模块。(包的本质也是一个模块)。
包的导入方式:

包下的模块,导入模块:
示例代码:
python
# 1. 导入模块
# import utils.my_fun
#
# utils.my_fun.log_separator1()
# utils.my_fun.log_separator1()
# 2.导入模块
# from utils import my_fun
# my_fun.log_separator1()
# 3.导入模块 #注意 需要在 __init__.py 文件中添加 __all__ = ["log_separator1"]
# from utils import *
# my_fun.log_separator1()
# my_fun.log_separator2()
#
# print(my_var.PI)
# print(my_var.NAME)
# 4. 导入模块中的功能 ;绝对路径 :从项目根目录查找, 相对路径: 从当前文件所在目录开始查找 ,写法
from utils.my_fun import log_separator1,log_separator3
log_separator1()
log_separator3()
init.py
python
# 描述包信息
__version__ = '1.0.0'
__author__ = 'Kong'
__all__ = ["my_fun","my_var"]
my_fun.py
python
def log_separator1():
print("- " *30) #重复输出
def log_separator2():
print("+ " *30)
def log_separator3():
print("# " *30)
def log_separator4():
print("* " *30)
my_var.py
python
#常量
PI = 3.1415926
NAME = "NAME常量"
总结:
1.什么是包,有什么作用。
包就是一个文件夹,里面可以存储很多Python模块(py文件),通过包可以对模块进行归类。
2.init .py文件的作用。
标识这是一个包,而不是普通的文件夹。
控制在improt * 时导入的模块列表(__all__变量)
3.导入包的方式。
import 包名.模块名
from 包名 import 模块名
from 包名 import *
from 包名.模块名 import *功能名
from 包名.模块名 import *