代码块

骏马金龙https://www.cnblogs.com/f-ck-need-u/p/9925021.html

https://www.cnblogs.com/jin-xin/articles/9439483.html

代码块可以使得一段python代码作为一个单元、一个整体执行。

几种代码块

  1. 模块文件是一个代码块
  2. 函数体是一个代码块
  3. class的定义是一个代码块
  4. 交互式(python idle)的每一个命令行都是一个独立的代码块
  5. 脚本文件是一个代码块
  6. 脚本命令是一个代码块(python -c "xxx")
  7. eval()和exec()中的内容也都有各自的代码块

代码块的作用是组织代码,同时意味着退出代码区块范围就退出了作用域范围。例如退出函数区块,就退出了函数的作用域,使得函数内的本地变量无法被函数的外界访问。

代码块缓存机制

缓存机制的前提条件:在一个代码块

缓存机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。

适用对象:int,str,float,bool

交互式代码块

注意:小整数可以跨域,因为它在python启动的时候就在内存中存入了常用的小整数(-5到256)

交互式是一行为一个代码块,所以当它执行一句代码就不知道上面执行了啥

可以理解,1班来了一个人,2班并不知道

x = 1000
y = 1000
x is y False
1.x=1000,在内存中开辟一个内存存1000,x指向他
2.y=1000,这时候不知道之前代码运行了啥,于是自顾自的创建了一个内存,存1000,y指向他
3.由于x和y不是指向同一个内存,就是False x=1000;y=1000
x is y
1.python首先读取这一行,发现x,y的值都是1000,于是进行了简单的优化x,y=1000
2.x,y指向同一个内存,所以为True True

脚本py文件代码块

整个py文件是一个代码块,但是它的内部还是可以嵌套其他的代码块的如(函数,exec()等)

x=1000
y=1000
print(x is y)
def zx():
c=1000
v=1000
print(c is y)
print(c is v)
zx() True
False
True

由此可见代码嵌套代码块也是不能相互影响的,函数的代码块,并不知道外部发生了什么,这就可以解释之前作用域的问题了

注意:

函数的声明过程中,所有涉及到变量的作用域内都不会对i进行赋值,仅仅只是保存了这个i变量名,只有在调用函数的时候才会进行赋值操作

Python 代码块的更多相关文章

  1. python代码块,小数据池,驻留机制深入剖析

    一,什么是代码块. 根据官网提示我们可以获知: 根据提示我们从官方文档找到了这样的说法: A Python program is constructed from code blocks. A blo ...

  2. python代码块和小数据池

    id和is 在介绍代码块之前,先介绍两个方法:id和is,来看一段代码 # name = "Rose" # name1 = "Rose" # print(id( ...

  3. Python 代码块左移或右移

    (就 IDE 是  PyCharm 来说) 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab Python 对代码对齐要求很严格的. Python的对齐方式很重要,对齐方式决定了 ...

  4. Python代码块缓存、小数据池

    引子 前几天遇到了这样一道Python题目:a='123',b='123',下列哪个是正确的? A. a != b B. a is b C. a==123 D. a + b =246 正确答案是B 是 ...

  5. day5 python代码块,流程控制

    判断类型 # isinstance 用法一 isinstance(值,类型)--------------->bool isinstance(5,int)-----------------> ...

  6. 用Python高亮org-mode代码块

    文章同时可在我的github blog上阅读:http://cheukyin.github.io/python/2014-08/pygments-highlight-src-export-html.h ...

  7. python基础之小数据池、代码块、编码和字节之间换算

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  8. 代码块: 以冒号作为开始,用缩进来划分作用域,这个整体叫做代码块,python的代码块可以提升整体的整齐度,提高开发效率

    # ### 代码块: 以冒号作为开始,用缩进来划分作用域,这个整体叫做代码块 if 5 == 5: print(1) print(2) if True: print(3) print(4) if Fa ...

  9. Python从菜鸟到高手(8):print函数、赋值与代码块

    1.神奇的print函数   print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设 ...

随机推荐

  1. linux 安装swoole

    1.首先我们要安装swoole扩展的话,需要把它的包下载下来,下载地址是: https://github.com/swoole/swoole-src 2.下载下来之后进行解压: unzip swool ...

  2. 在虚拟机上的关于FTP FTP访问模式(本地用户模式)

    首先你要有vsftpd服务 可以先去yum中下载(当然你要有本地yum仓库) 输入命令: yum  install  vsftpd 下载完成之后打开vsftpd服务 输入命令:systemctl   ...

  3. 暑期集训20190807 游戏(game)

    [问题描述] 小A 拿到了 n 个数,

  4. 学习笔记22_AspMvc简介

    *Mvc和webForm区别 1. Mvc模式下,前台和后台的交流,是后台提供数据,使用对象包裹的形式,前台来使用,类似于webForm定义一个属性那样. 2.Mvc模式下,再也不是使用this.la ...

  5. 网络安全-主动信息收集篇第二章-三层网络发现之ping

    第三层网络扫描基于TCP/IP.ICMP协议. 优点:可路由.速度比较快 缺点:相对于二层网络扫描较慢,容易被边界防火墙过滤 所有扫描发现技术,都会有相应的对抗办法,所以无论是来自二层的网络扫描还是来 ...

  6. python学习之【第十篇】:Python中的内置函数

    1.前言 内置函数,就是Python内部预先定义好的函数,可以直接使用,Python中内置函数有以下这么多个: 2.map() 描述: map() 会根据提供的函数对指定序列做映射.第一个参数 fun ...

  7. NOIP 模拟22

    这次考试真的是像教练说的真的挺难的,但是人家rank1还是100+, 但是咕咕蛊!

  8. jQuery 触发事件 移动端和pc端的区别

    jQuery 触发事件 移动端和pc端的区别 <pre>mousedown event.pageXmousemove event.pageXmouseup event.pageXtouch ...

  9. webpack3、4的基本的使用方法

    webpack的基本使用 webpack的安装 webpack的使用时需要借助 node 的环境的 在 node 中自动下载了 npm 这个包管理工具,之后的操作我们需要使用npm包管理工具进行相关操 ...

  10. libwebsocket协议切换状态机

    libwebsocket为连接(connection)定义了一组状态机-lws_connection_states,通过状态机我们来看libwebsocket如何实现协议的切换.除了lws_conne ...