python学习之路——命名关键字参数、函数对象、函数嵌套、名称空间与作用域、闭包函数...

news/2024/7/8 3:20:49

命名关键字参数:在定义函数时,*与**之间参数称之为命名关键字参数

特点:在调用函数时,命名关键字参数必须按照key=value的形式传值

 

函数对象

函数是第一类对象:指的是函数的内存地址可以像一个变量值一样去使用

1.变量值可以被引用

2.变量值可以当作参数传给另外一个函数

3.变量值可以当作函数的返回值

4.变量值可以当作容器类型的元素

 

函数嵌套

函数的嵌套调用:在一个函数内部又调用其它函数

函数的嵌套定义:在函数内又定义了其他函数

 

一 、名称空间相关

1.名称空间Namespaces:指的就是存放名字与值内存地址绑定关系的地方(内存空间)

2.名称空间分为三大类

  内置名称空间:存放的是python解释器自带的名字

    产生:python解释器的启动则产生

    销毁:python解释器关闭则销毁

 

全局名称空间:在顶级定义的名字

  产生:执行python程序时产生

  销毁:python程序执行完毕后则销毁

 

局部名称空间:在函数内定义的名字

  产生:在函数调用时临时产生

  销毁:在函数调用完毕后则销毁

 

三种名称空间的产生的先后顺序:内置——全局——局部

查找名字的顺序:从当前位置往外一层一层查找

  如果当前在局部名称空间:局部——全局——内置

  如果当前在全局名称空间:全局——内置

 

二、作用域:指的是作用范围

  全局作用域:包含内置与全局名称空间的名字

    特点:全局存活,全局有效

  局部作用域:包含局部名称空间的名字

    特点:临时存活,局部有效

作用域关系是在函数定义阶段就已经固定死了,与调用位置无关

 

闭包函数:

闭:封闭,指的是该函数是定义一个函数内部的函数

包:该内部函数包含对外层函数名字的引用

 

为函数体传值的两种方式:

  方式一:直接以参数的形式传入

  方式二:闭包函数

 

转载于:https://www.cnblogs.com/unbrokenlin/p/9709789.html


http://www.niftyadmin.cn/n/1934954.html

相关文章

小程序的授权机制

小程序的授权机制 it修真院小课堂 目录 1.背景介绍 2.知识剖析 3.常见问题 4.解决方案 5.编码实战 6.扩展思考 7.参考文献 8.更多讨论 1.背景介绍 说到这,我们需要先了解一下微信小程序是啥?简单说,它就是一个可以实现之前只能是原生态APP可以…

敏捷AI|NLP技术在宜信业务中的实践「背景篇」

导读:文章围绕基于机器学习的NLP技术在宜信内部各业务领域的应用实践展开,分享这一过程中的相关经验,包括智能机器人在业务支持、客户服务中的探索,基于文本语义分析的用户画像构建,以及NLP算法服务平台化实施思路等。…

[翻译] Google的javascript风格指南中值得注意的13点

写在文章前 这篇文章翻译自13 Noteworthy Points from Google’s JavaScript Style Guide . 如果觉得风格指南的完整版太长的话,这篇文章提取出来了比较值得注意的几点,比如说tab vs space这种堪比咸甜豆腐脑的战争。(还记得美剧硅谷中&#…

BZOJ3573 HNOI2014米特运输

显然确定一个点的权值后整棵树权值确定。只要算出根节点的权值就能知道两种改法是否等价。 乘的话显然会炸&#xff0c;取log即可。map似乎会出一些问题&#xff0c;sort即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib&g…

JavaScript 算法之复杂度分析

新的一年&#xff0c;先给大家整理分享一个简单而又重要的知识点&#xff1a;时间复杂度和空间复杂度。因为在前几篇文章中&#xff0c;提到了时间复杂度&#xff0c;也许有些小伙伴还不清楚。&#xff08;ps&#xff1a;希望在我上篇文章留言的那位小伙伴别失望哦&#xff0c;…

Set类初识

先看一下官方文档&#xff1a;set是一个不包含重复元素的 collection。更确切地讲&#xff0c;set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2&#xff0c;并且最多包含一个 null 元素。正如其名称所暗示的&#xff0c;此接口模仿了数学上的 set 抽象。在所有构造方法以及 ad…

css - 选择器

标签选择器 即使用html标签作为选择对象 <style>div{ background:red; }</style><div>s</div>类名选择器 html标签的类名由class属性指定。可以为一个html标签指定多个class类名&#xff0c;每个类名以空格隔开即可。 <style>.box{ background:r…

2018.09.27_练习时的tips

tablecontrol中modify cell creat object tree1(TYPE REF TO CL_GUI_ALV_TREE)时传入参数 NO_HTML_HEADER 传入‘ ’时 输出效果如同top of page。&#xff08;需要在CALL METHOD TREE1->SET_TABLE_FOR_FIRST_DISPLAY 中传入参数IT_LIST_COMMENTARY I_LOGO I_BA…