原标题:告别菜鸟 ,一文学会Python模块(有深度)
来源:麦叔编程
作者:麦叔
Python必备核心技能 - 模块module(内容超详细,举例说明很容易懂)
Python模块和包是和变量,函数,类同等重要的基础的基础。因为它们是Python组织程序的方式。掌握不好,你很难学习和理解新的知识,会处处碰壁。是掌握Python必备的核心技能。
在硬核Python私教班课程中,我把所有关键技能总结为
Python 36技,模块和包是其中之一。如果你想快速系统的学习Python,建立办公自动化,数据分析等实战技能,需要有专业老师指导你解决问题,可以考虑麦叔私教课,物美价廉。有兴趣咨询maishu1024。
本文详细讲解了:
模块和概念;
创建自己的模块;
Python模块的查找路径;
import语句的各种用法;
创建模块和核心技巧;
模块化编程是指将编程任务分解为单独的,较小的,更易于管理的子任务或模块的过程。然后可以像构建模块一样将各个模块拼凑在一起以创建更大的应用程序。
程序模块化代码有几个优点:
简单性:模块通常只关注问题的一个相对较小的部分,而不是关注整个问题。如果你只关注单个模块,那么只有一个更小的问题域需要处理。这使得开发更容易,更不容易出错。
可维护性:分成多个小文件,修改的时候只要修改相关的文件就行了。而且可以多人协作,同时修改而不会产生冲突。
可重用性:单个模块中定义的功能可以被应用程序的其他部分轻松地重用(通过适当定义的接口)。这减少了重复代码。
作用域:模块通常会定义一个单独的命名空间,这有助于避免程序不同区域中的名字发生冲突。(Python禅的信条之一是:命名空间是一个很棒的发明)
函数,模块和包都是Python中促进代码模块化的机制。
1.Python模块:概述
在Python中定义模块的方式有三种:
用Python编写的模块,我们写的主要是这一类模块
用C语言编写模块,并在运行时动态加载模块,例如re(正则表达式)模块。这种模块看不到源代码。
包含在解释器中的内置模块,比如itertools模块。
在这三种情况下,访问模块内容的方式都是相同的: 使用import语句。
本文重点主要放在用Python编写的模块上。用Python编写的模块很酷的一点是,它很容易。你所需要做的就是创建一个包含合法Python代码的文件,然后给该文件一个后缀名为.py的名称。就是这样!不需要特殊的语法或魔法。你就创建了一个模块。
例如,假设你创建了一个名为mod.py的文件,其中包含以下内容:
s = "这是我的第一个模块,我是麦叔,喜欢请关注我."
a = [100, 200, 300]
def foo(arg):
print(f'arg = {arg}')
class Foo:
pass
mod.py中定义了几个对象:
s (一个字符串)
a (一个列表)
foo() (一个函数)
Foo (一个类)
假设mod.py保存在你电脑上的某一个位置,这些对象可以通过如下方式导入模块来访问:
>>> import mod
>>> print(mod.s)
这是我的第一个模块,我是麦叔,喜欢请关注我.
>>> mod.a
[100, 200, 300]
>>> mod.foo(['你好', '我好', '大家好'])
arg = ['你好', '我好', '大家好']
>>> x = mod.Foo()
>>> x
2.模块搜索路径
继续上面的例子,让我们看看当Python执行语句时会发生什么:
import mod
当解释器执行上面的import语句时,它会依次去下面的目录搜索mod.py,搜索不到就报错:
运行代码的目录,如果使用交互式Python,则为当前目录
环境变量PYTHONPATH中的目录。
安装Python时配置的与安装相关的目录列表
可以通过sys.path来得到所有搜索路径。
>>> import sys
>>> sys.path
['', 'C:\\Users\\maishu\\Documents\\Python\\doc', 'C:\\Python36\\Lib\\idlelib',
'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib',
'C:\\Python36', 'C:\\Python36\\