本节主要内容
1、动态参数 *args **kwargs
形参:*args将多个位置参数聚合打包成元组
**kwargs将多个关键字参数聚合打包成字典
实参:*li1将列表进行解包打散成多个位置参数
**dic1将字典进行解包打散成多个关键字参数
形参顺序
位置参数、
动态参数:*args接收多个位置参数,聚合打包成元组
默认值参数
动态参数:**kwargs接收多个关键字参数,聚合打包成字典 2、名称空间-命名空间
含义:python解释器开始执行的时候,就会开辟一个空间,每当遇到一个变量,就把变量名和值的对应关系记录下来,
这个存放变量名字和值关系的内容空间就叫名称空间(也叫'命名空间')
分类
内置名称空间:存在python解释器为我们提供的名字,比如:list,dict,tuple,str,int等都是内置名称空间
全局名称空间:函数外申明的变量会存放在全局名称空间
局部名称空间:函数内申明的变量会存在在局部名称空间
加载顺序:内置名称空间>全局名称空间>局部名称空间(函数执行的时候)
取值顺序:局部名称空间>全局名称空间>内置名称空间 3、作用域
含义:作用域就是作用范围
分类
全局作用域:内置名称空间+全局名称空间
局部作用域:局部名称空间
查看
globals()函数:查看全局作用域中的内容-(全局变量和全局作用域中的函数信息)
locals()函数:查看当前作用域中的内容-函数和变量
(注意:是当前,而不是局部作用域,当位置在函数内,就查看局部作用域的内容;
当位置在函数外,就是查看全局作用域的内容。取决于local()函数所在的位置) 4、函数的嵌套
关键字
global:在函数内(局部),引入全局变量
nonlocal:在函数内(局部),调用父级命名空间中的变量
注意点:不管是global还是nonlocal关键字,变量申明和变量赋值都需要分别2行写才行,写在一行会报错
例子:global a
a =20 #是正确的
global a = 20 #会报错

Python【day 10】函数进阶-小结的更多相关文章

  1. 【python 3】 函数 进阶

    函数进阶 1.函数命名空间和作用域 命名空间一共分为三种: 全局命名空间 局部命名空间 内置命名空间 *内置命名空间中存放了python解释器为我们提供的名字:input , print , str ...

  2. python语法基础-函数-进阶-长期维护

    ###############    函数的命名空间和作用域    ############## """ # 函数进阶 命名空间和作用域 命名空间 全局命名空间——我们自 ...

  3. python 基础篇 10 函数进阶

    本节主要内容:1. 函数参数--动态传参2. 名称空间, 局部名称空间, 全局名称空间, 作⽤域, 加载顺序.3. 函数的嵌套4. gloabal, nonlocal关键字 ⼀. 函数参数--动态传参 ...

  4. python学习总结(函数进阶)

    -------------------程序运行原理------------------- 1.模块的内建__name__属性,主模块其值为__main__,导入模块其值为模块名     1.创建时间, ...

  5. (转)Python内置函数进阶之“属性(property())”详解

    原文:https://blog.csdn.net/GeekLeee/article/details/78519767 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.c ...

  6. python之路——函数进阶

    阅读目录   楔子 命名空间和作用域 函数嵌套及作用域链 函数名的本质 闭包 本章小结 楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x> ...

  7. python学习之---函数进阶

    一,递归函数: 做程序应该都知道,在一个函数的内部还可以调用其它函数,这叫函数的调用,但是有一种特殊的情况,在一个函数内部对自身函数的调用,我们成这为函数的递归调用. 在此,使用一个家喻户晓的例子来演 ...

  8. 周末班:Python基础之函数进阶

    迭代器和生成器 迭代和可迭代 什么是迭代(iteration)? 如果给定一个list或tuple,我们要想访问其中的某个元素,我们可以通过下标来,如果我们想要访问所有的元素,那我们可以用for循环来 ...

  9. python note 10 函数变量

    1.命名空间 #内置命名空间 —— python解释器 # 就是python解释器一启动就可以使用的名字存储在内置命名空间中 # 内置的名字在启动解释器的时候被加载进内存里#全局命名空间 —— 我们写 ...

随机推荐

  1. querySelectorAll和getElementsByClassName获取元素的区别

    querySelectorAll()方法是HTML5新增的方法,通过传入一个css选择符,返回所有匹配的元素而不仅仅是一个元素.这个方法返回的是一个NodeList的实例.那么它和通过getEleme ...

  2. Java 构造结构私有化

    Java 构造结构私有化 单例设计模式:(Singleton) 在一般情况下,一个类只有通过产生对象之后才可以操作这个类. class Singleton { public void print() ...

  3. [20190515]热备份模式与rman冲突.txt

    [20190515]热备份模式与rman冲突.txt --//别人的系统做dg时打开热备份模式,忘记关闭,做rman备份时报错.做一个记录.--//实际上也怪自己,实施时没有讲清楚.通过例子说明: 1 ...

  4. scrapy简单使用方法

    scrapy简单使用方法 1.创建项目:scrapy startproject 项目名例如:scrapy startproject baike windows下,cmd进入项目路径例如d:\pytho ...

  5. 关于APICloud与DCloud的我的一些看法

    最近因为项目需要,研究了一下市场较为流行的四种移动开发平台:Wex5.APPcan.Dcloud.APICloud,Wex5因为界面UI较为老旧,且语法和js有较大出入,APPcan不开源等缘故,主要 ...

  6. STL关联容器的基本操作

    关联容器 map,set map map是一种关联式容器包含 键/值 key/value 相当于python中的字典不允许有重复的keymap 无重复,有序 Map是STL的一个关联容器,它提供一对一 ...

  7. public class和class的区别

    class A { } class B { } public class 和class的区别: * 一个java源文件当中看看定义多个class *一个java源文件当中public的class不是必 ...

  8. Python字符串内置方法使用及年龄游戏深入探究

    目录 作业 ==程序代码自上往下运行,建议自上而下的完成下列任务== 作业 使用代码实现以下业务逻辑: 写代码,有如下变量name = " aleX",请按照要求实现每个功能: 移 ...

  9. 关于destoon6.0下的ngnix伪静态

    关于destoon6.0下的ngnix伪静态配置 ##rewrite nginx rewrite '(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)' ...

  10. Vue的模板语法(四)

    一.插值 1. 文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值: <span>Message: {{ msg }}</span> Must ...