二十八.函数进阶

  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 命名空间 作用域 函数的嵌套的更多相关文章

  1. python --- 10 *args **kwargs 命名空间 作用域 函数的嵌套

    函数进阶 1.   "*"  和  "**" ① 在形参位置时   都是聚合的作用 *args    位置参数→元组 **kwargs   关键字参数→字典 混 ...

  2. 动态参数(*args,**kwargs),命名空间和作用域,global和nonlocal,函数的嵌套

    1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序: 位置,*args,默认值,**kwargs 在形参上*聚合, **聚合 在实参上*打散, **打散 ...

  3. python之动态参数 *args,**kwargs和命名空间

    一.函数的动态参数 *args,**kwargs, 形参的顺序1.你的函数,为了拓展,对于传入的实参数量应该是不固定,所以就需要用到万能参数,动态参数,*args, **kwargs 1,*args ...

  4. python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal

    一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args   **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...

  5. python之路——10

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 a.函数可读性强,复用性强 def 函数名() 函数体 return 返回值 函数先定义后执行, b. ...

  6. python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)

    一.动态参数 def func(a,b,c,d,e,f,g): pass func(1,2,3,4,5,6,7) 如果加30个参数呢?有没有万能的参数,可以代表一切参数呢? *args 动态参数,万能 ...

  7. python记录_day10 动态传参 命名空间 作用域

    一.动态传参 动态传参用到 *args 和 **kwargs ,*号表示接收位置参数,args是参数名:**表示接收关键字参数,kwargs是参数名 def chi(*food): print(foo ...

  8. python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包

    楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...

  9. Python代码中func(*args, **kwargs)

    这是Python函数可变参数 args及kwargs *args表示任何多个无名参数,它是一个tuple **kwargs表示关键字参数,它是一个dict 测试代码如下: def foo(*args, ...

随机推荐

  1. git中误删提交(commit)后,怎么恢复

    “xml文件存储数据”提交被我误操作,即使用reset  --hard删除了,然后又进行了三次提交,发现删除的提交有用,需要找回来, 于是找了好久,找到好方法: 1.进入工程下的.git文件下,git ...

  2. 多点触控 TouchAction

    #TouchAction #TouchAction方法是appium自已定义的新方法 # * 短按 (press) * 释放 (release) * 移动到 (moveTo) * 点击 (tap) * ...

  3. 2019-02-22 L231

    Scientists at the Massachusetts Institute of Technology have said lobsters could be key to creating ...

  4. MySQL:安装mysqld系统及基础应用

    MySQL篇 第一章.安装mysqld系统及基础应用 一.安装 注意:mysql的标点符号只能是英文的标点符号. 1.设置配置文件. 文件格式:文本格式 文件位置:Mysql的主目录下 文件名称:my ...

  5. python自学第四天,字符串用法

    String 的用法 names="张三 welcome {city}" print(names.capitalize())#首字母大写 print(names.count(&qu ...

  6. socket长连接理解

    在一个tcp连接上可以连续发送多个数据包,在tcp连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持. 长连接指建立socket连接后不管是否使用都保持连接,但安全 ...

  7. 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

    在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select ...

  8. 【webdriver自动化】使用unittest实现自动登录163邮箱然后新建一个联系人

    #练习:登录163邮箱然后新建一个联系人 import unittest import time from selenium import webdriver from selenium.webdri ...

  9. Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合

    文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...

  10. ANDROID init进程

    init简要 init是Android上启动的第一个用户态进程. 执行序列是: start_kernel() -> rest_init() -> kernel_init() -> i ...