Python-----明月楼高休独倚

函数的传参

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

原文地址:https://www.cnblogs.com/hql1117/p/11045589.html