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)  # 关键字的形式传参

最新文章

  1. 常用的Linux命令
  2. css常用效果总结
  3. poj3461 字符串匹配 熟悉kmp算法第一题
  4. 黑马程序员_JAVA之交通灯管理系统
  5. Jquery手册
  6. Nokia 的 Scrum标准
  7. 第十二篇、Swift_Sqlite的使用
  8. HDOJ(HDU) 1708 Fibonacci String
  9. kindeditor集成ckplayer(带右键编辑菜单)
  10. iOS开发——UIAlertController
  11. SQL Server 死锁概念和分析
  12. 文件上传控件bootstrap-fileinput的使用
  13. sklearn标准化-【老鱼学sklearn】
  14. 图片上传 new FormData() ,new FileReader()
  15. PHP的爬虫框架
  16. virtual安装linux
  17. spring-boot集成Springfox-Swagger2
  18. 驳《编码规范是技术上的遮羞布》自由发挥==摆脱编码规范?X
  19. Centos 6.5 升级python到版本2.7.12
  20. 迁移学习与fine-tuning有什么区别

热门文章

  1. Android dialog圆角显示及解决出现的黑色棱角
  2. 微信小程序-03-小程序开发框架
  3. centos下安装ipython(minglnghang命令行)
  4. 搭建高可用mongodb集群(二)—— 副本集
  5. centos 7.2 Apache+mysql+php step by step备忘
  6. VS2013个版本密钥(亲测可用)
  7. 深入探索C++对象模型(1) 关于对象(思维导图)
  8. (MUA)mutt-"No authenticators available" 发送不出去邮件
  9. 沉淀再出发:jvm的本质
  10. 深入浅出SharePoint2012——安装Report Service