19-3-14Python中函数的进阶
1.动态参数:
def func(*args): #在形参位置*叫做聚合
print(args) #元组形式 func(1,2,3,4,5,6) def func(**kwargs): # 动态关键字参数
print(kwargs) func(a=1, b=2, c=3) # 关键字的形式传参
*args 和 **kwargs
是可以更换的,但是程序员约定都用它
用途:在不明确接收参数、数量时使用*args和**kwargs
位置参数>动态的位置参数
形参:位置>动态位置>默认参数>动态默认参数
实参:位置>关键字参数
在实参调用的时候,*将可迭代的对象打散,字典是将键取出
在形参出现*就是在聚合
在实参调用的时候,**将字典打散成 关键字参数(键=值)
在形参处出现**就是将关键字参数聚合成一个字典。
注意:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。
2.函数的注释
print(aaa._doc_)查看注释
3.名称空间
1. 内置空间中所有代码——内置空间
2. 自己写的py文件——全局空间
3. 函数中的代码——局部空间
*注:
加载顺序:
内置空间——>全局空间——>局部空间
查找值的顺序:
局部空间——>全局空间——>内置空间——>报错
作用域:
全局作用域 内置+全局=全局作用域
局部作用域 函数内的就是局部作用域
a = 10 def func():
global a #global:声明a为全局变量。//找到要修改的值,修改后放回
a += 1 func()
print(a)
4.函数的嵌套
第一种函数嵌套:函数嵌套函数
第二种函数嵌套:多个函数嵌套
5.global nonlocal
nonlocal:在一个局部空间内,nonlocal会修改离他最近的那个变量,如果上一层没有就继续向上找,直到走到局部空间头部,都没有则报错。
global:在局部修改全部变量,如果没有就创建一个新的。
def func(*args): #在形参位置*叫做聚合
print(args) #元组形式
func(1,2,3,4,5,6)
def func(**kwargs): # 动态关键字参数
print(kwargs)
func(a=1, b=2, c=3) # 关键字的形式传参
最新文章
- 常用的Linux命令
- css常用效果总结
- poj3461 字符串匹配 熟悉kmp算法第一题
- 黑马程序员_JAVA之交通灯管理系统
- Jquery手册
- Nokia 的 Scrum标准
- 第十二篇、Swift_Sqlite的使用
- HDOJ(HDU) 1708 Fibonacci String
- kindeditor集成ckplayer(带右键编辑菜单)
- iOS开发——UIAlertController
- SQL Server 死锁概念和分析
- 文件上传控件bootstrap-fileinput的使用
- sklearn标准化-【老鱼学sklearn】
- 图片上传 new FormData() ,new FileReader()
- PHP的爬虫框架
- virtual安装linux
- spring-boot集成Springfox-Swagger2
- 驳《编码规范是技术上的遮羞布》自由发挥==摆脱编码规范?X
- Centos 6.5 升级python到版本2.7.12
- 迁移学习与fine-tuning有什么区别
热门文章
- Android dialog圆角显示及解决出现的黑色棱角
- 微信小程序-03-小程序开发框架
- centos下安装ipython(minglnghang命令行)
- 搭建高可用mongodb集群(二)—— 副本集
- centos 7.2 Apache+mysql+php step by step备忘
- VS2013个版本密钥(亲测可用)
- 深入探索C++对象模型(1) 关于对象(思维导图)
- (MUA)mutt-";No authenticators available"; 发送不出去邮件
- 沉淀再出发:jvm的本质
- 深入浅出SharePoint2012——安装Report Service