Python的immutable对象

Python的immutable对象

immutable - 山盟海誓永不改变

在编程的世界里有一对单词很重要,小白也许不知道,但是高手都知道。它们就是mutable和immutable

immutable的意思是不可修改的;mutable的意思就是可以修改的。

有些编程语言特意设计成了变量默认情况下不可修改,比如这两年大热门的Rust语言就是这样的。还有好多其他语言使用了同样的设计。

为什么要这样呢?因为编程语言对于可变数据与不可变数据用不同的处理方式,不可变的数据的处理要快的多,也安全的多。

如果你爱上了一个他或她,你知道TA天生设计就是不会改变的,一旦和你好了,不会再和别人好。那可是很省心的,你走遍天涯也不怕,不管传给了什么函数,或者在很多函数之间传递了几百次,这都不要紧,因为TA不会变心的!

相反,如果你的爱人非常善变,他遇到了别人可能会轻易被改变,那恐怕你要累死了。隔壁老王轻松改变TA。哎,这样的人生太累了。

用爱人去对比编程语言也许不是最合适的,但我相信你可以更好的从感情上理解immutable的好处。

Python的immutable对象

Python也知道immutable的好处,所以Python也有一些对象是immutable的,它们包括:

  • 整数int
  • 浮点数float
  • 字符串str
  • 布尔值bool
  • 元组tuple

immutable意味着一旦创建,永不改变。

等等!婵平,那你怎么解释下面的代码?

name = '婵平'
name = '婵平2'

这个代码明明改变了name啊!

很好的问题!

注意:immutable的是对象,不是变量。变量是指向对象的指针,可以随时改变。但是immutable的对象一旦创建就不会改变。

在上面的例子中,先有一个字符串对象婵平,这个对象没有改变。当name编程婵平2的时候,Python创建了一个新的对象,而不是改变原来的对象。

我们可以证明一下:

name = '婵平'
print(id(name))
name = '婵平2'
print(id(name))

打印结果:

4300612176
4300612272

看到了吗?两个地址是不同的。这说明是两个完全不同的对象。明白了吗?

职业发展

作为一个代码打工仔,对于绝大部分程序员来说,想要成为牛逼的真正挣钱程序员的路还很长,一刻都不能懈怠。

我们无法从HR角度,或者技术leader的角度来臆测哪种状态的面试更能获取面试官青睐。但通过我们积攒的大量的面试经验,大家多少可以推断一些成为有竞争力的程序员的一些必要条件。

大佬云集、资料丰富

当初我在字节认识一个非常非常资深的前辈,他到字节比我早三年,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?

他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。

我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。别的不说,就拿个人能力而言,我曾出国出差过几个月,有幸见识了许多各种海外名校的同事,和他们学习交流人工智能,这真的让我AI有了更深层次的认识。

除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。我当时在字节内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来两年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以腾讯、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。

Python 知识手册

Linux 知识手册

爬虫查询手册

而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:

数据分析知识手册:

机器学习知识手册:

金融量化知识手册:

岗位内推、学习交流

我们大量需要前端岗位、python岗位、Java 岗位、Android 和 iOS 的开发岗位,工作地点:北京字节,欢迎校招社招扫描下方二维码找我内推

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值