韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > Python的高级特性:容易忽略的不可变类型

Python的高级特性:容易忽略的不可变类型

头像

silencement

2019-07-16 14:31:072800浏览 · 0收藏 · 0评论

Python 中有一些容易忽略的不可变类型 Str、Integer、None、Tuple

# 错误演示

In [45]: def demo(lst = []):
   ....:     lst.append("hello")
   ....:     return lst
   ....: 

In [46]: demo()
Out[46]: ['hello']

In [47]: demo()
Out[47]: ['hello', 'hello']

廖雪峰的 Python 教程有提到这一块,但并没有太细致。在这里,由于 lst 是一个可变参数,而 demo 在初始化时 lst 参数指向一个 [] 的内存空间,之后每一次调用,[] 这个内存空间都 append 一个「hello」,而由于 lst 依然指向这个内存空间,所以就会看到 demo 函数调用的奇怪现象,解决问题的办法就是引入不可变类型。

#正确演示

In [54]: def demo(lst = None):
   ....:     lst = []
   ....:     lst.append("hello")
   ....:     return lst
   ....: 

In [55]: demo()
Out[55]: ['hello']

In [56]: demo()
Out[56]: ['hello']

在正确演示中,将 lst 初始化为 None, 这样 lst 就是一个不可变参数,但是不能直接对 lst 直接使用 append,因为只有 list 才有 append 方法,因此需要将 lst 进行真正的初始化 lst = []

可变类型和不可变类型是一个很容易忽略的知识点,在这里深入进行研究,下面例举常见的不可变类型和可变类型。

不可变「mutable」类型:

int, long, float, string, tuple, frozenset

可变类型「immutable」类型:

list, dict

Python中所有变量都是值的引用,也就说变量通过绑定的方式指向其值。 而这里说的不可变指的是值的不可变。 对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收。下面用 int 和 list 分别作为代表进行讲解。

#不可变类型

In [31]: id(1),id(2)
Out[31]: (4477999936, 4477999968)

In [32]: a = 1

In [33]: id(a)
Out[33]: 4477999936

In [34]: # 当a赋一个新值时,变量a会绑定到新值上

In [35]: a = 3

In [36]: id(a)
Out[36]: 4478000000

#可变类型

In [38]: lst = [0]

In [39]: id(lst)
Out[39]: 4493976328

In [40]: lst = [0,1]

In [41]: id(lst)
Out[41]: 4499600328

表面上看可变类型,python 似乎实现了不同类型的管理方式,其实不是的。其实 lst 代表地址,它引用的 lst[0], lst[1] 的内存地址其实是变了的,因为 lst[i] 就是 int(此处),而 int 就是不可变类型。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

痴癫普通话版免费观看| 女性私密按摩精油| 小妈爱上继子免费观看电视剧 | 扌桑达鬲的日| 两个男人睡一个女人什么心理呢 | 外国网站| 双飞娘俩国语免费观看视频| 电影《裸体肉欲》| 香港三级巜欲性高蜜桃成熟时类似| 边做边流奶水的人妻| 无套内谢粉嫩小沈| 免费B站看大片真人电视剧| 石头剪刀布谁输了看隐私| 黑色蕾丝女装大长腿| 掀开奶置边躁狠狠躁H工厂小说| 老公说我的B夹得他很爽| 天香天堂免费观看电视剧| 第1章品尝朋友娇妻| 小泽玛利亚| 按摩师把我添高潮了6次| 二人努力生猴子免费观看| 免费观看B站刺激战场2023| 换夫妻群交杂交| 18岁的少女与狗高清电视剧| 《漂亮的女邻居5》HD| 7777777亚洲和欧洲尺码表| 欧美大妈LOGO大全| 兄弟的老婆4免费观看电视剧| 《炸裂吧!巨棒》免费阅读漫画| C罗正式加盟拜仁| 狄仁杰之天宫屋楼| 俄罗斯少女2免费观看 | 快乐8| 女性左腿又开腿肚子视频大全 | 雨后的故事| 爱痴癫| 华为新品手机发布| 《不戴套瑜伽教练3》| 情趣内衣| 老少配BXMBXMBXMJJ| 《父承子液》金银花原文主角