变量作用域
- 变量的作用域是指,在程序的哪些地方可以使用变量
- 局部(local)变量:在函数内定义的变量;只能在函数内使用或修改
- 全局(global)变量:在函数外定义的变量;在函数内外均可使用,但不能在函数内直接修改;如果一定要在函数内修改全局变量的值,需要使用global关键字
- 函数内定义的变量可以和函数外的变量重名
- 函数参数也是局部变量
- 获取函数名 print(f.__name__)
- 获取函数注释 print(f.__doc__)
参数扩展
- 默认值参数:定义函数时,可以设置参数的默认值;调用函数时,可以不给默认参数传值,此时会直接用我们设置的默认值赋值
- 默认值参数必须从后往前设置
- 顺序参数 f(1,2,3)
- 关键词参数 f(a = 1, c = 3, b = 2),例如 print 中的end和sep
- 在函数调用时,如果使用了关键词参数,那么后面的参数都必须使用关键词
- 形参 parameter
- 实参 argument
- 调用函数时,实参传递给形参
可变参数
- 可变参数就是可以传递任意数量的参数值,用 * 进行定义
- def f(*args):
- 在函数体中,可变参数 args 中保存了所有参数,是元组类型
- 可变参数不能用关键词进行赋值
- 同一个函数最多只能有一个可变参数
- 调用函数时,可变参数之前,可以定义普通参数,且这些普通参数只能采用顺序赋值,不支持关键词赋值
- 调用函数时,可变参数之后,可以定义普通参数,且这些参数只能使用关键词赋值,不能使用循序参数
可变关键词参数
- 用 ** 进行定义
- def f(**kwargs):
- 在函数体中,可变参数 args 中保存了所有参数,是元组类型
- **kwargs 只能出现在参数列表中最后的位置