Python 代码块

代码块

骏马金龙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变量名,只有在调用函数的时候才会进行赋值操作

原文地址:https://www.cnblogs.com/zx125/p/11745864.html

时间: 2024-10-26 15:31:03

Python 代码块的相关文章

Python 代码块、缓存机制

Python 代码块.缓存机制 相同的字符串在Python中地址相同 s1 = 'panda' s2 = 'panda' print(s1 == s2) #True print(id(s1) == id (s2)) #True 2.代码块: ? 所有的代码都需要依赖代码块执行. ? 一个模块,一个函数,一个类,一个文件等都是一个代码块 ? 交互式命令中, 一行就是一个代码块 3.缓存机制: ? 同一代码块下的缓存机制 ? 适用对象:int(float),bool,str ? 具体细则:所有的数字

Python 代码块 小数据池

一  代码块 什么是代码块??? Python程序是由代码块构造的.先举一个例子: 1 for i in '12334567': 2 print(i) 1 def func(): 2 print('Hello,world!') 1 class A: 2 name = 'colin' 从上面的例子可以称为代码块,虽然上面的缩进的内容都叫代码块,但是他们并不是python中严格定义的代码块. 那么,python中真正意义上的代码块又怎么定义? 因此,我们定义:一个模块,一个函数,一个类,一个文件等都

python代码块和小数据池

id和is 在介绍代码块之前,先介绍两个方法:id和is,来看一段代码 1 # name = "Rose" 2 # name1 = "Rose" 3 # print(id(name)) 4 # print(id(name1)) # 两个id相同 5 # print(name == name1) # True 6 # print(name is name1) # True 执行结果 2257847297000 2257847297000 True True Proce

Python代码块缓存、小数据池

引子 前几天遇到了这样一道Python题目:a='123',b='123',下列哪个是正确的? A. a != b B. a is b C. a==123 D. a + b =246 正确答案是B 是的,我选错了,我当时觉得没有正确答案,原因是我当时已经知道Python中 == 与 != 是比较两边的数值是否相等,很显然 a==b,我也知道 is 比较的是两边的内存地址是否相同,而内存地址是否相同是通过比较 id(a) 是否等于id(b)来知道的,而我想当然地认为a和b是两个不一样的变量,内存地

Python不同功能的代码块

•函数作为参数 import math def add(x,y,f): return f(x) + f(y)print add(25,36,math.sqrt) •map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回.注意:map()函数不改变原有的 list,而是返回一个新的 list. 代码块功能将输入的小写的字母转换成大写的字母 def format_name(

python小数据池、代码块

一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是一个代码块. 什么叫交互方式?就是咱们在cmd中进入Python解释器里面,每一行代码都是一个代码块. 不同的代码块: def func(): print(333) class A: name = 'alex' 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块. for i

python 小数据池、代码块详解

首先我们来看看下面的问题,第一次遇到还以为见鬼了.                    看到上面这么多种情况刚开始直接就懵逼了.100ID一样,1000就不一样.终端运行情况居然会和pycharm不一样. 后面终于搞懂了,原来这里头有大学问,且看下面分析. 一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是一个代码块. 也就是说:       所

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

1.神奇的print函数 ??print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设置,以及输出多参数字符串. ??如果为print函数传入多个参数值,那么print函数会将所有的参数值首尾相接输出. # 输出结果:a b c d e print("a","b","c","d","e"); ?

python基础之小数据池、代码块、编码

一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块.python中真正意义的代码块是什么? 块是一个python程序的文本,他是作为一个单元执行的.代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而对于一个文件中的两个函数,也分别是两个不同的代码块: def fu