2月27日课后总结

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. 如果在全局中:
	全局 >>> 内置
# 总结就是就近原则
posted @ 2023-02-27 16:45  橘子熊何妨  阅读(27)  评论(0)    收藏  举报