函数
函数参数
- 在函数内部使用赋值语句修改参数不会影响外部数据,无论参数是可变还是不可变
- 若参数为可变类型,在函数内部使用方法修改数据内容会影响外部数据
- 在函数内部不允许直接修改全局变量的引用,如果使用赋值语句,会在函数内部重新定义一个局部变量;若要在函数内部修改全局变量的值,需先使用global声明一下变量,global关键字会告诉解释器后面的变量是一个全局变量再使用赋值语句时,就不会创建局部变量。
【注意】
多值参数
有时可能一个函数能够处理的参数个数是不确定的,可以使用多值参数
- 参数名前增加一个*可以接收元组
- 参数名前增加两个*可以接收字典
—般在给多值参数命名时,习惯使用以下两个名字
- *args:存放元组参数,前面一个*
- **kwargs:存放字典参数,前面有两个*(kw:keyword)
元组和字典的拆包
在调用多值参数的函数时,若要将一个元组直接传递给args,将一个字典直接传递给kwargs,可以使用拆包简化参数的传递
在元组变量前,增加一个*;在字典变量前,增加两个*
函数有多个返回值
返回值是元组时,( )可以省略
有默认值的参数必须在参数列表末尾,调用函数时,如果有多个缺省参数需指定参数名。
模块
模块是Python程序架构的一个核心概念
模块就像是工具包,需要import这个模块,模块中定义的全局变量、函数都能给外界直接使用。
【Pyc文件(c是compiled:编译过)是由Python解释器将模块的源码编译后的二进制文件。
Python会把被import的模块先编译成字节码,提高执行速度。有了模块的字节码文件之后,下次运行程序若没有修改过源代码,将会加载pyc文件并跳过编译;如果又修改了源代码,下次运行时将重新编译。】