模块概述

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块让你能够有逻辑地组织你的 Python 代码段。

把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

模块能定义函数,类和变量,模块里也能包含可执行的代码。

为了解决代码量太多难以维护的问题,我们把相似功能的函数分组,分别放到不同功能的文件中去,这样每个文件包含的内容就相对较少,而且对应每一个文件的大致功能都可以用文件名来体现。很多编程语言都是使用这种方式来组织代码结构的。一个.py就是一个模块。

一个模块只会被引入一次,防止模块被引入多次

 

模块优点

提高代码的可维护性

提高了代码的复用度,当一个模块完毕,可以被多个地方调用

引用其他的模块(内置模块,三方模块和自定义模块)

避免函数名和变量名的冲突

 

自定义模块

新建一个function.py文件

python ybc 模块 python模块功能_Python

#一个.py文件就是一个模块

def a():
    print("落霞与孤鹜齐飞,秋水共长天一色")

def b():
    print("又恐琼楼玉宇,高处不胜寒,起舞弄清影")

def c():
    print("清明时节雨纷纷,路上行人欲断魂")

使用模块中的内容

格式:模块名.函数名

#引入自定义模块
import function

#使用模块中内容
function.a()

python ybc 模块 python模块功能_if语句_02

 

from...import...语句导入模块

作用:从模块中导入一个指定的部分到当前命名空间

格式: from 模块名 import 函数名

#引入自定义模块
from function import b

#使用模块中内容
b()

python ybc 模块 python模块功能_自定义_03

 

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__属性下的语句

python ybc 模块 python模块功能_if语句_04

python ybc 模块 python模块功能_自定义_05

直接执行function代码:

python ybc 模块 python模块功能_python_06

执行first.py运行结果:

python ybc 模块 python模块功能_Python_07

 

现在function模块代码:

#一个.py文件就是一个模块

def a():
    print("落霞与孤鹜齐飞,秋水共长天一色")

def b():
    print("又恐琼楼玉宇,高处不胜寒,起舞弄清影")

def c():
    print("清明时节雨纷纷,路上行人欲断魂")

#每一个模块都有一个__name__属性,当其值等于“__main__”时,表明该模块自身在执行
if __name__=="__main__":
    print("***********")

直接执行function代码:

python ybc 模块 python模块功能_if语句_08

执行first.py运行结果:

python ybc 模块 python模块功能_if语句_09