函数的传参
1.形参角度:第三种传参方式。
2.*的魔性用法
3.形参角度的最终顺序
4.函数的传参:形参角度:第四种传参方式(了解)
动态参数 *args **kwargs(真正有魔性的是 *号)
# def eat(food1,food2,food3):
# print(f'我请你吃:{food1},{food2},{food3}')
# eat('蒸羊羔','蒸熊掌','蒸鹿尾')
# 当给函数传入的参数数目不定时,之前的传参方式解决不了问题。
# 万能参数,动态参数。 *args
# def eat(food1,food2,food3):
# print(f'我请你吃:{food1},{food2},{food3}')
# eat('蒸羊羔','蒸熊掌','蒸鹿尾','烧花鸭','烧企鹅')
def eat(*args): # 将实参角度:定义一个函数时,* 所有的位置参数聚合到一个元组中。
print(args)
print(f'我请你吃:{args}')
eat('蒸羊羔','蒸熊掌','蒸鹿尾','烧花鸭','烧企鹅')
5.从空间角度研究函数
全局名称空间: py文件运行时开辟的,存放的是执行的py文件(除去函数内部)的所有的变量与值(地址)的对应关系,整个py文件结束之后,才会消失。
临时(局部)名称空间: 函数执行时,在内存中临时开辟的一个空间,存放的函数中的变量与值的对应关系,随着函数的结束而消失。
内置名称空间:input,print,内置函数等。
6.取值顺序加载顺序
加载顺序:上面这三个空间,谁先加载到内存。
内置名称空间 ----》 全局名称空间 ----》 (函数执行时)临时名称空间
取值顺序:(就近原则)
7.作用域
全局作用域:全局名称空间,内置名称空间。
局部作用域:局部名称空间。
8.内置函数:globals,locals
9.高阶函数(嵌套函数)
总结
函数的传参:万能参数 args,**kwargs,a,b = [1,2,3,4]
函数的顺序:位置参数,*args, 默认参数,仅限关键字参数,**kwargs