模块概述
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块让你能够有逻辑地组织你的 Python 代码段。
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
为了解决代码量太多难以维护的问题,我们把相似功能的函数分组,分别放到不同功能的文件中去,这样每个文件包含的内容就相对较少,而且对应每一个文件的大致功能都可以用文件名来体现。很多编程语言都是使用这种方式来组织代码结构的。一个.py就是一个模块。
一个模块只会被引入一次,防止模块被引入多次
模块优点
提高代码的可维护性
提高了代码的复用度,当一个模块完毕,可以被多个地方调用
引用其他的模块(内置模块,三方模块和自定义模块)
避免函数名和变量名的冲突
自定义模块
新建一个function.py文件
#一个.py文件就是一个模块
def a():
print("落霞与孤鹜齐飞,秋水共长天一色")
def b():
print("又恐琼楼玉宇,高处不胜寒,起舞弄清影")
def c():
print("清明时节雨纷纷,路上行人欲断魂")
使用模块中的内容
格式:模块名.函数名
#引入自定义模块
import function
#使用模块中内容
function.a()
from...import...语句导入模块
作用:从模块中导入一个指定的部分到当前命名空间
格式: from 模块名 import 函数名
#引入自定义模块
from function import b
#使用模块中内容
b()
from...import *语句导入模块
作用:把一个模块中所有内容全部导入当前命名空间
不推荐使用
#引入自定义模块
from function import *
#使用模块中内容
a()
b()
__name__属性
模块就是一个可执行的.py文件,一个模块被另一个程序引用,想让模块中的某一个部位不执行,可以使用__name__属性来使程序仅调用模块中的一部分。
Python中的模块(.py文件)在创建之初会自动加载一些内建变量,__name__就是其中之一。Python模块中通常会定义很多变量和函数,这些变量和函数相当于模块中的一个功能,模块被导入到别的文件中,可以调用这些变量和函数。
__main__ 在python中作可以为函数的入口,而实际工程常用 if __name__=='__main__'来表示整个工程开始运行的入口。此外你如果不想让功能的某部分被别的模块调用执行,比如我自定的模块Student里的‘我的密码是xxx’,只有自己执行才可以打印密码。所有你可以把部分写在if语句里,只有__name__=='__main__'的时候才能执行。这个可以这么理解,在if语句之外代码是最外层的,有点“全局变量”的意思,放入if里面就成了私有的了。
直接执行模块会显示__name__属性下的语句,否则在其他程序中引用模块,将不会执行__name__属性下的语句
直接执行function代码:
执行first.py运行结果:
现在function模块代码:
#一个.py文件就是一个模块
def a():
print("落霞与孤鹜齐飞,秋水共长天一色")
def b():
print("又恐琼楼玉宇,高处不胜寒,起舞弄清影")
def c():
print("清明时节雨纷纷,路上行人欲断魂")
#每一个模块都有一个__name__属性,当其值等于“__main__”时,表明该模块自身在执行
if __name__=="__main__":
print("***********")
直接执行function代码:
执行first.py运行结果: