函数定义_deepen

在定义函数中,不确定输入传参的的数量时候.可以采用*+函数名的方式来定义

在输入实参的时候可以使用多个值,然后传给形参.

输入格式的时候注意:!!!传参格式动态参数必须要在位置参数的后面

def funs(a,*food)

  pass

funs("中餐","西餐","日本菜","印度料理")

所示,a = "中餐",food会吧"西餐","日本菜","印度料理"都提取进去.

而当利用多种传参方式的时候,形参上面拟定的默认值只有在最后的时候才会生效.

如果需要动态接收默认值参数,*没有办法实现,采用会报错,在python中采用**的方式来收取默认值参数

位置参数 >*args>关键字参数>**kwargs

这个是最终顺序

*, ** 在形参位置: 聚合
  在实参位置: 打散

命名空间:

我们给存放变量名和值得地方取名为命名空间,命名空间分为三种:

1.全局命名空间:python自己, print, input, len

2.局部命名空间:你写的代码从上到下

3.内置命名空间:函数, 类, 方法, 其他模块, 对象

加载的顺序:

1.内置命名空间

2.全局命名空间

3.局部命名空间(函数被执行的时候)

4. nonlocal global
global: 在局部引入全局的内容, 可以升华一个变量为全局变量
nonlocal : 在局部, 引入上一层名称空间中的变量, 如果没有, 继续上一层...

原文地址:https://www.cnblogs.com/lowen107/p/9879074.html