python --- 10 *args **kwargs 命名空间 作用域 函数的嵌套
函数进阶
1. "*" 和 "**"
① 在形参位置时 都是聚合的作用
*args 位置参数→元组
**kwargs 关键字参数→字典
混合时顺序为: 位置 , *args , 默认值 , **kwargs
② 在实参位置时 都是打散的作用
*args 字符串,元组,字典 → 位置参数
**kwargs 字典 → 关键字参数
2.名称空间
用来存放名字(变量, 函数名, 类名, 引入的模块名)的
1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....
2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)
3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间.
放的是: 函数内部的内容(变量, 函数,类...)
名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰
3.作用域
1). 全局作用域: 内置+全局
2). 局部作用域: 局部
3). 从全局去找局部 -> 找不到
局部去找全局 -> 可以找到
4). globals() 查看全局作用域
locals() 查看当前作用域
4.函数的嵌套
1).查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置
2).global: 在 局部 引入 全局 的一个变量
3).nonlocal: 内层函数(在局部作用域)引入外层离他最近的那个变量.
评论帖子的代码:

python --- 10 *args **kwargs 命名空间 作用域 函数的嵌套的更多相关文章
- python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套
二十八.函数进阶 1. "*" 和 "**" ① 在形参位置时 都是聚合的作用 *args 位置参数→元组 **kwargs 关键字参数→ ...
- 动态参数(*args,**kwargs),命名空间和作用域,global和nonlocal,函数的嵌套
1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序: 位置,*args,默认值,**kwargs 在形参上*聚合, **聚合 在实参上*打散, **打散 ...
- python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal
一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...
- python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
一.动态参数 def func(a,b,c,d,e,f,g): pass func(1,2,3,4,5,6,7) 如果加30个参数呢?有没有万能的参数,可以代表一切参数呢? *args 动态参数,万能 ...
- 函数的进阶(动态参数,命名空间和作用域,函数的嵌套,gloabal和nonlocal关键字)
1. 函数参数--动态传参 昨天已经解过了传参, 如果需要给一个函数传参,而参数又是不确定的. 或者我们给一个函数传很多参数, 我的形参就要写很多, 写起来就很麻烦, 这时我们可以考虑使用动态参数.形 ...
- python中的命名空间以及函数的嵌套
一.动态传参 函数的形参中除了默认值参数和位置参数外,还有动态传参.当不确定形参有几个或者有很多的时候,就可以使用动态传参. 1.1 动态接收位置参数 在python中使用*来接收动态位置参数 def ...
- 011. Python中*args, **kwargs 和 pass 和self 解释
*args, **kwargs →在python都表示可变参数, *args表示任意多个任意类型无名参数, 是一个元组; **kwargs表示关键字参数(key/value参数), 是一个字典,接收的 ...
- python中*args,**kwargs
*args :当我们不知道要有多少个参数传给函数,或者我们想把一个列表或者tuple存起来以后传给函数. **kwargs:当我们不知道有多少个关键字参数要传给函数,或者我们想把字典存起来以后传给函 ...
- python中*args, **kwargs理解
先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...
随机推荐
- <meta>标签中,X-UA-Compatible和IE=Edge,chrome=1的作用
用来指定浏览器优先以什么模式来渲染页面,ie=edge表示以最高版本内核渲染,ie=8表示以id8内核渲染页面,此外还有ie=9.id=10等. 而chrome=1意思是,优先以chrome内核来渲染 ...
- jdbc连接oracle时使用的字符串格式
两种方式: SID的方式: jdbc:oracle:thin:@[HOST][:PORT]:SID SERVICE_NAME的方式: jdbc:oracle:thin:@//[HOST][:PORT] ...
- 03-树3 Tree Traversals Again(25 分)
题目 链接 分析 push是二叉树前序遍历的结果,pop是二叉树中序遍历的结果,所以这个题就是已知前序遍历和中序遍历,求后序遍历. AC代码 #include "bits/stdc++.h& ...
- html5-新元素新布局模板
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Tornado安装
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado ...
- Swift 了解(2)
循环(Loops) 1. For条件递增语句 ; counter < ; counter++ ) { liftWeights( ) } 语法是这样的:用for作为循环的开始,告诉Xcode你要声 ...
- QT 通过QNetworkReply *获取对应请求的URL地址
[1]QT 通过QNetworkReply *获取对应请求的URL地址 reply->url().toString(); Good Good Study, Day Day Up. 顺序 选择 循 ...
- 20165305 苏振龙《Java程序设计》第四周学习总结
第五章 继承: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序代码提升为父类.) 特点: 这里接触到了新的关键词,extends,在java语言中用estends来继承父类的行为 ...
- NGINX的几个应用场景
NGINX的几个应用场景 两个参考地址: NGINX的百度百科:https://baike.baidu.com/item/nginx/3817705?fr=aladdin NGINX的中文网站:htt ...
- Linux服务器---邮件服务openwebmail安装
安装openwebmail openwebmail提供了可视化的邮件管理系统,它运行在Apache环境下. 1.安装必备软件 [root@localhost ~]# yum install –y p ...