2/27课后总结
函数参数
两类
# 形参
# def my_func(a, b): a和b都是形参定义函数时写在括号内的
# 实参
# my_func(1,2) 1和2都是实参,调用函数时写在括号内的
"""
调用时实参的值传给形参,函数运行完后解除绑定
形参以变量的形式存在,实参以数值的形式
变量名(形参) = 数值(实参)
"""
位置参数
def index(a, b, c):
pass
index(1,2,3)
"""
就是按照顺序所排列一一对应的就是位置参数
定义时的是位置形参,调用时的是位置实参
"""
关键字实参
index(b=1,c=5,a=1) # 关键字参数可以不按顺序,但是不可以在位置参数前面
默认参数
def index(a=1, b=2, c=3):
pass
index(4,5,6)
index()
"""
在函数定义时直接给其赋值,在函数调用时就可以选择是否给其赋值
"""
可变长参数
def index(x, y, *a):
print(x,y)
print(a) # (1, 2, 3, 4, 5, 6)
"""
在形参中*加参数,不论传入多少位置参数都可以接收,返回时会将多余的参数组成元组返回
"""
def func( **a):
print(a)
func(age=20, name='kevin', salary=1000, gender='male') # {'salary': 1000, 'gender': 'male'}
"""
在形参中**加参数,不论传入多少关键字参数都可以接收,返回时会将多余的参数组成字典返回
*和**后面的参数名随便定义,推荐使用args和kwargs
"""
def index(a, b, *args ):
l = [11, 22, 33,44,55]
t = (11, 22, 33,44,55)
index(*l)
index(*t)
print(*t)
def index(**kwargs):
print(kwargs)
dict = {'username': 'kevin', 'age': '18', 'gender': 'male'}
"""
*和**也可以在调用时使用,配合实参使用可以将列表元组或者字典打散一一传入
"""
名称空间的概念(namespace)
# 存放变量名与变量值关系的地方
1. 内置名称空间
# 在python解释器中自带的
2. 全局名称空间
# 就是py文件中任意地方都可以调用的与全局变量类似
3. 局部名称空间
# 函数体中定义的,类似局部变量
4. 存活周期
# 内置的:伴随python解释器的启动/关闭而产生/回收
# 全局的:伴随python文件的开始执行/执行完毕而产生/回收
# 局部的:伴随函数的调用/结束而临时产生/回收
名字的查找顺序
# 首先先确定你所在的位置
1. 如果在局部中:
局部 >>> 全局 >>> 内置
2. 如果在全局中:
全局 >>> 内置
# 总结就是就近原则
标签:总结,index,27,形参,参数,课后,print,实参,def
From: https://www.cnblogs.com/juzixiong/p/17160336.html