python中代码块所属关系,python用什么代表代码块

大家好,小编为大家解答python中代码块所属关系的语法的问题。很多人还不知道python中代码块所属关系,现在让我们一起来看看吧!

Source code download: 本文相关源码

一,什么是代码块
Python程序是由代码块构造的。块是一个python程序的文本,他是作为一个单元执行的Python如何画九朵花

代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块。

而作为交互方式输入的每个命令都是一个代码块。

什么叫交互方式?就是咱们在cmd中进入Python解释器里面,每一行代码都是一个代码块,例如:
在这里插入图片描述
而对于一个文件中的两个函数,也分别是两个不同的代码块:
在这里插入图片描述
二,id,is,==

在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址:

 name = 'Tom'
 print(id(name))
 #5117952

那么 is 是什么? == 又是什么?

== 是比较的两边的数值是否相等,而 is 是比较两边的内存地址是否相等。 如果内存地址相等,那么这两边其实是指向同一个内存地址。
在这里插入图片描述
可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。

三,小数据池

小数据池,也称为小整数缓存机制,或者称为驻留机制等等。

那么到底什么是小数据池?他有什么作用呢?

大前提:小数据池,只针对,整数,字符串,bool值。

官方对于整数,字符串的小数据池是这么说的:

对于整数,Python官方文档中这么说:

The current implementation keeps an array of integer objects for all
integers between -5 and 256, when you create an int in that range you
actually just get back a reference to the existing object. So it
should be possible to change the value of 1. I suspect the behaviour
of Python in this case is undefined.

对于字符串:

Incomputer science, string interning is a method of storing only
onecopy of each distinct string value, which must be immutable.
Interning strings makes some stringprocessing tasks more time- or
space-efficient at the cost of requiring moretime when the string is
created or interned. The distinct values are stored ina string intern
pool. –引自维基百科

翻译并汇总一下,表达的意思就是:

Python自动将-5~256的整数进行了缓存,当你将这些整数赋值给变量时,并不会重新创建对象,而是使用已经创建好的缓存对象。

python会将一定规则的字符串在字符串驻留池中创建一份,当你将这些字符串赋值给变量时,并不会重新创建对象, 而是使用在字符串驻留池中创建好的对象。

其实,无论是缓存还是字符串驻留池,都是python做的一个优化,就是将-5~256的整数,和一定规则的字符串,放在一个‘池’(容器,或者字典)中,无论程序中那些变量指向这些范围内的整数或者字符串,那么他直接在这个‘池’中引用,言外之意,就是内存中只创建一个。

优点:能够提高一些字符串,整数处理在时间和空间上的性能;需要值相同的字符串,整数的时候,直接从

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值