目录
- 函数参数的两大分类
- 位置参数
- 可变长参数
- 名称空间
- 总结
函数参数的两大分类
形式参数 函数定义阶段括号所写的参数 实际参数 函数调用阶段括号内传入的参数
形参与实参的关系 可以将形参看成是变量名,实参看成是变量值 函数调用阶段临时绑定,函数运行结束断开 形参的表现形式 变量名 实参的表现形式多种 (把握核心 数据值)
位置参数
位置参数 从左往右依次填入的参数 位置形参 函数定义阶段从左往右依次填入的变量名 位置实参 函数调用阶段从左往右依次填入的数据值
关键字实参(可以打破位置顺序) 函数调用阶段通过形参名=数据值的形式 传值 1.位置形参与位置实参在函数调用阶段,按照位置对应绑定 2.位置参数绑定的时候多一个不行少一个也不行 重点: 格式越简单越靠前,越复杂越靠后
可变长参数
1.函数无论传入多少位置参数都可以正常运行 可变长形参 def func(x,y,*a): print(x,y,a) func() # () func(1) # (1,) func(1, 2, 3, 4, 5, 6, 7) # (1, 2, 3, 4, 5, 6, 7) func(1,2) # 1 2 () func(1,2,3,4,5,6,7,8,9) # 1 2 (3, 4, 5, 6, 7, 8, 9) func(1,2) # 1 2 (3, 4, 5, 6, 7, 8, 9) *在形参中用于接收多余的位置参数 并组织成元组的行赋值给*后面的变量名
2.函数无论传入多少关键字都可以正常运行 def index(x, y, **b): print(x, y, b) index() # {} index(a=1,b=2,c=3,d=4) # {'a': 1, 'b': 2, 'c': 3, 'd': 4} index(y=2, x=1) # 1 2 {} index(y=2, x=1, u=222, k=111, l=444) # 1 2 {'u': 222, 'k': 111, 'l': 444} **在形参中用于接收多余的关键字参数 并组织成字典的形式赋值给**后面的变量名 *使用 会将列表、元组内的数据打散 **使用 会将字典的键值对打散成关键字参数传入
名称空间
1.内置名称空间 print() len() 2.全局名称空间 py文件中顶格编写的代码 name = 'jason' # name全局 def func(): # func全局 pass if 1: a = 123 # a全局 for i in range(10): print(i) # i全局 while True: a = 123 # a全局 3.局部名称空间 函数体代码运行之后产生的都是局部名称空间
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注NICE源码的更多内容!