补充:

三元运算:c= a if a>b else b

     相当于:  if  a>b:

          c=a

        else:

          c=b

结构;  if条件成立的结果  if  条件  else  if条件不成立的结果

一、命名空间

(1)(按加载顺序)

1、内置命名空间:存放python内部可以直接用的功能,例如:input  print  while等,是代码运行前就创建的

2、全局命名空间:存放代码的变量和函数名,是在代码运行开始时创建的,从上到下依次加载(除函数里面的名字)

3、局部命名空间:存放函数调用时函数内部的名字,从上到下加载

(2)对变量的使用

1、局部可以用全局的变量,全局不可以用局部的变量

2、对局部来说:a) 自己有的用自己的,自己没有的用全局的

        b) 有嵌套时,自己有用自己的,自己没有的往上一级一级找,直至找到为止

二、作用域

(1)内置空间:在任意地方都可以用

(2)全局空间:在写的代码里的任意地方都可以用

(3)局部空间:在自己定义的函数里使用

范围:内置>全局>局部>局部里的局部(嵌套)

(4)作用域链的概念:

(5)global和local的用法

globals代表全局作用域,放在哪都一样,显示所有的变量

locals代表局部作用域,放在函数里只会显示当前函数的变量

(6)修改全局变量值和局部变量值:一般不常用,尤其是全局变量,不要轻易修改

global  修改全局命名空间里的变量值,也是声明全局变量nonlocal  只修改局部命名空间里的 从内部往外部找到第一个对应的变量名
globals()
locals()
a = 0
def demo1():global aa = 2print(a)demo1()
print(a)

    def whl1():a=2def whl2():nonlocal aa=3print(a)whl2()print(a)whl1()print(a)

三、函数名的本质1、函数名本质就是个变量名,当变量用就行(1)函数名就代表函数的内存地址,把这个内存地址取出来,就可以调用(2)函数名可以赋值给新变量(3)函数名可以当元素(列表、元组等容器类型)(4)函数名可以做函数的参数(5)函数名可以当做函数的返回值,返回值就是函数的内存地址

2、函数名是第一类对象,这个概念要知道

3、当函数名被赋予变量,元素时,都可以在新变量或者取索引后加括号来调用该函数

def whl():a=123print(a)
print(whl)
val=whl
val()
li=[whl]
li[0]()

四、闭包

1、概念:内部函数引用了外部函数的变量而非全局变量。这个内部函数就叫闭包

闭包名._ _closure_ _   会输出闭包使用的所有外部变量(元组类型),可以当作判断是否为闭包的依据,如果没有输出则不是闭包。

转载于:https://www.cnblogs.com/wanghl1011/articles/7453237.html

8月30日学习内容整理:命名空间,作用域,函数名本质,闭包相关推荐

  1. 1月26日学习内容整理:reverse函数补充,modelform对象补充,form表单参数补充

    1.reverse函数中的args参数,必须是一个元组,只有一个元素时必须加逗号,并且args给URL传参数的时候是根据分组传的,所以我们设置的URL中的要传参的正则表达式一定要加括号 2.我们用未绑 ...

  2. 9月7日学习内容整理:内置函数

    一.内置函数 1.作用域相关: (1)globals()   查看全局作用域,显示所有的变量 (2)locals()      查看局部作用域,只会显示当前函数使用的变量 2.迭代器相关: (1)it ...

  3. 1月8日学习内容整理:JS的作用域和作用域链

    补充: 对于编译型语言,是编译一次生成可执行文件来执行多次:对于解释型语言,始终都是编译一次执行一次 python编译时要看有没有赋值操作,没有的话就不编译任何内容:若有赋值操作,才会开辟内存空间,把 ...

  4. 10月25日学习内容整理:数据操作:增加更新删除,单表查询操作

    >>\G是按行显示,必须是大写 >>插入数据:补充另一种插入记录的方法 -->insert into 表名1(字段1,字段2,...) select 字段1,字段2,.. ...

  5. 1月16日学习内容整理:爬虫框架:Scrapy

    @@@老师博客地址::::: http://www.cnblogs.com/linhaifeng/articles/7811861.html 一.介绍 Scrapy一个开源和协作的框架,其最初是为了页 ...

  6. 9月13日学习内容整理:异常处理

    一.异常处理 1.排错:多行报错的时候,真正报错的是最下面:若报错的地方在别人的代码里,注意别人写的代码是不会报错的,还是找自己的错 2.特点:一旦发生异常,程序不会再向下执行 3.处理方法: (1) ...

  7. 11月17日学习内容整理:jquery文档处理,事件细讲,动画

    一.文档处理:下面举例中的B可以是标签也可以是选择器也可以是字符串 >>>添加到指定元素内部的后面 $(A).append(B) // 把B放到A内部元素的最后,A是父节点$(A). ...

  8. 1月11日学习内容整理:请求库selenium之选择器,等待元素被加载

    首先引入: from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdr ...

  9. 1月17日学习内容整理:Scrapy框架补充之pipeline,去重规则

    @@@老师博客::: 关于高性能和scrapy框架 http://www.cnblogs.com/wupeiqi/articles/6229292.html 关于scrapy-reids组件 http ...

最新文章

  1. Java内存溢出详解之Tomcat配置
  2. Centos 7 让docker飞一会儿
  3. java异常类子类和父类的关系
  4. 减法公式运算法则_人教版数学七年级上册1.3.2有理数的减法视频讲解+知识点+同步练习...
  5. Linux Crontab 安装使用详细说明
  6. 计算机应用基础授课提纲,《计算机应用基础》讲授提纲(1).ppt
  7. python实战演练_《Python高效开发实战》实战演练——
  8. 数据科学入门与实战:Matplotlib绘图Series
  9. Android低功耗蓝牙(BLE)使用详解
  10. 春节档总票房已破50亿 情人节单日票房超14亿
  11. 21位美国名校学生领袖在湖北了解中国媒体情况
  12. 【五级流水线CPU】—— 6. 加载存储指令(14)
  13. 用户态文件系统fuse学习
  14. python读取pdf内容转word_卧槽!Pdf转Word用Python轻松搞定!
  15. 一棵树的生物量怎么算_2019玩花园 | 夏天怎么办?
  16. 直方图规定化python+opencv实现
  17. 数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)
  18. Android聊天软件开发(基于网易云IM即时通讯)——发送视频消息(六)
  19. class文件与dex文件解析
  20. 配置git的合并工具mergetool不生成.orig文件

热门文章

  1. ORACLE分页查询SQL语法——高效的分页
  2. Masonry 控件详解
  3. Android Native 代码NDK开发学习笔记
  4. Tensorflow(r1.4)API--tf.summary.scalar
  5. 特斯拉AI日的感知之旅
  6. YOLO系列专题——YOLOv2理论篇
  7. ROS外接usb摄像头标定方法
  8. std::thread的使用
  9. ORB_SLAM2中的疑难杂症
  10. Linux文件的搜寻