一、模块(Module)
1.1、简介
在计算机程序开发过程中,随着程序代码越写越多,在一个文件中代码量就会越大,将来就越来越不容易维护。我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。
在Python中,一个.py文件就是一个模块(Module)。
模块大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。
我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。
使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。
你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。
1.2、模块的导入
方法1 、格式: import 模块名
import pygame
方法2 、格式: from 模块名 import 方法1,方法2,...
from plane_sprites import set name
方法3 、格式: from 模块名 import *
from plane_sprites import *
1.3、程序的访问入口
python的内置属性:__name__
这个属性的返回值有两种
-
第一种:__main__ , 程序主动执行的,那么返回结果是这个
-
第一种:文件名, 程序是被调用才执行的,那么返回结果是这个
def s1(): print("hello") def s2(): print("bye") name = "tom" age = 10 if(__name__) == "__main__": # 判断是否这个文件是主动执行 s1() s2() print("------------------------------")
二、包
2.1、简介
-
将多个python模块放到一个目录中,这个目录就是一个包
-
包中必须包含一个文件__init__
2.2、 导入包的目录结构
# 目录结构
|---newpro.py # 相当于主程序
|---package01 # 包
|---__init__.py
|---md1.py # 包中的模块
|---md2.py # 包中的模块
2.3、包的导入
导入包的本质:导入一个包就是执行包下的__init__.py文件
只要一个文件夹下面有个 init.py 文件,那么这个文件夹就可以看做是一个包。
包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的 init.py 而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的 init.py 中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。
格式:from 包名字 import *
from package01 import *