10 函数进阶

本文深入探讨了Python中的动态传参机制,包括*args和**kwargs的使用,以及函数作用域和名称空间的概念。讲解了局部、全局及内置名称空间的区别,和nonlocal与global关键字的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日主要内容
1. 动态传参(重点) *, **
*, ** :
形参: 聚合
位置参数* -> 元组
关键字** -> 字典
实参: 打散
列表, 字符串, 元素 -> *
字典 -> **
形参顺序(重点):
位置, *args, 默认值, **kwargs

无敌传参
def func(*args, **kwargs): arguments参数 keyword-arguments关键字参数
pass

2. 作用域和名称空间
名称空间: 用来存放名字(变量, 函数名, 类名, 引入的模块名)的

1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....
2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)
3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间. 放的是: 函数内部的内容(变量, 函数,类...)

名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰

作用域:
1. 全局作用域: 内置+全局
2. 局部作用域: 局部

globals() 查看全局作用域
locals() 查看当前作用域

3. 函数的嵌套
在函数中声明函数
在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置

4. nonlocal和global关键字(重点)
global: 在局部引入全局变量
nonlocal: 在局部...内层函数引入外层离他最近的那个变量.

1.动态传参
2.名称空间和作用域
3.函数的嵌套

转载于:https://www.cnblogs.com/WANG-/p/10083786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值