函数参数的两大分类
- 形式参数
- 函数定义阶段括号所写的参数
- 实际参数
- 函数调用阶段括号内传入的参数
- 形参与实参的关系
- 可以将形参看成是变量名,实参看成是变量值
- 函数调用阶段临时绑定,函数运行结束断开
- 形参的表现形式 变量名
- 实参的表现形式多种 (把握核心 数据值)

位置参数
- 位置参数
- 从左往右依次填入的参数
- 位置形参
- 函数定义阶段从左往右依次填入的变量名
- 位置实参
- 函数调用阶段从左往右依次填入的数据值
- 关键字实参(可以打破位置顺序)
- 函数调用阶段通过形参名=数据值的形式 传值
- 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.局部名称空间
- 函数体代码运行之后产生的都是局部名称空间

总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注w3xue的更多内容!