一、几个重要的概念
- 包:可以简单的理解为文件夹的概念;二者的区别在于包下存在__init__.py文件。也就是说:文件夹 + __init__.py = 包
- 模块:简单的理解为文件
- 类:class
- 函数、变量:属于类的特性
二、包和模块(命名空间)
- 导入模块:import
- ①import 包.文件:eg:import folder.file,表示的是导入folder文件夹中的file文件;使用该方法导入时,在后面变量的使用时也需要使用"folder.file.var"这样的格式。
- ②from folder.file import var:该方法可以直接讲另一个模块之中的变量导入;同理也可以导入模块
- from folder.file import *:导入所有变量,可以在源文件中增加__all__=[‘a’,‘b’,‘c’]导入部分变量
- _init_.py的作用:_init_.py是保重所必须的,会在引入包的时候自动执行__init__.py中的内容。
- 包和模块不会被重复导入
- 避免循环导入(套娃)
- 导入模块就会执行模块内的所有代码
三、函数
- 函数基本结构:
def function(para_list):
pass
① 参数列表可以为空
② 函数可附带返回值return;没有return时返回 None - 函数参数:
① 必须参数:必须参数=实参;就是传入的参数------必须参数传入顺序需要和形参对应
② 关键字参数:调用函数时候定义的,相当于给传入的实参添加了对应的形参名,这种格式就是关键字参数。c=add(x=1,y=2)
③ 默认参数:在定义参数时给形参赋值(在函数调用时可以修改)
eg:def add(x=1, y=1) - 函数多个返回值的序列解包:
假设函数 def function(x,y)的返回值是一个元组(两个返回值或更多),这个时候我们可以简单的对函数的返回值进行解包,而不需要想c语言那样需要使用相同的元组接收返回值:如下:a,b=funtion(1,2)这个时候便可以将函数的返回值的元组分别赋值给a和b。
同理举一反三我们也可以存在类似如下用法来进行序列解包和打包:
eg:var=1,2,3
eg:a,b,c=var