一、模块,包,库
模块,英文为Modules,本质上是一个Python程序,以.py作为文件后缀。任何py文件都可以作为一个模块。[1]
大型项目需要多个模块,用包(package) 来管理模块。Python包,就是里面装了一个.py文件的文件夹。
Python包具有下面3个性质: 1.它实质上是一个文件夹; 2.该文件夹里面一定有_init_.py模块,其他的模块可以有也可以没有; 3.它的本质依然是模块,因此一个包里面还可以装其他的包;
严格来说Python中是没有库(library) 的,模块(module)和包(package)都是Python语法中有的概念,而库只是一个通俗的说法。平时说的库既可以是一个模块也可以是一个包。证据就是我们可以打开Python的安装目录,里面有一个叫做Lib的文件夹,打开这个文件夹之后就会发现很多“标准库”都在里面,我们常用的os库、random库、re库都在里面,这些“库”都是一个个的python文件即模块;而json、collections、sqlite3还有tkinter这些“库”又是一个一个的文件夹(里面都有__init__.py)也就是包
二、从类到包
1 | class People: |
描述一个真实的对象一般有两种方式,他可以做什么(行为),他是什么样的(属性或特征) Python中一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)。类是一个模板,具有相同的属性和行为。
1 | # 简单理解,不是很严谨 |
我是周杰伦,self.name= JayChou 我和self是一样的,它是一个指向实例本身的引用,所以方法的定义必须包含形参self。self为前缀的变量可供类中所有方法使用。
首字母大写的是类,类中的函数称为方法
函数和方法本质是一样的,差别在于调用方法
_init_是特殊的方法,用类创建实例时,都会自动运行它
1 | class Restaurant: |
一个模块(一个.py文件)中存储多个类 一个文件夹有一个mycar.py文件(一个模块),该py文件中包含Car类和Battery类
导入模块中的一部分类: from 模块 import 类 form mycar import Car,Battery
导入整个模块: import 模块
包(库)包含多个模块。
下载了一个gapminder包(库):包里有如下内容:

导入包后,要使用包的类或函数,都是直接包名.函数或者包名.类
也可以用 import 包 as 别名 去简化包名,方便一些。
比如这个包有3个模块(3个py文件)
init模块(该模块定义了一个属性):
1 | from .data import _load_gapminder |
data模块(该模块定义了一个函数):
1 | import pkg_resources |
version模块(该模块定义了一个属性):
1 | __version__ = 0.1 |
包的使用: 导入包后,包内的属性和函数就可以使用了



- 1.python中的模块、库、包有什么区别? - 风影忍着的回答 - 知乎 https://www.zhihu.com/question/30082392/answer/2030353759 ↩︎