前言
最近一直没有写博客,在忙着准备申请各大公司的实习,现在基本已经定下来了,特将这段时间面试中遇到的问题进行总结和解答,主要包括一些网络、算法、操作系统、python的问题,这些问题并不是以往比较常见的题目,更多的都是更加细节的或者以往没有见到的题目。文章更多的是面向技术,而不是面经,同时关于问题的解答都是自己一家之言,如有问题,还望大家指正。本文的知识点是关于python中的可变对象与不可变对象,面试官问我在python中是如何实现的。
正文
我最开始想到的是这个问题要考察的是python的内部实现机制,所以先简述下python的可变对象和不可变对象,再从python内部实现的角度分析下这个题目。
众所周知,python在堆中分配的对象按照是否可变分为两类:可变对象和不可变对象。关于他们各自的定义我想大家比较熟悉,特复制一段官方解释如下:In general, data types in Python can be distinguished based on whether objects of the type are mutable or immutable. The content of objects of immutable types cannot be changed after they are created. Only mutable objects support methods that change the object in place, such as reassignment of a sequence slice下面列举出一些常见的可变对象和不可变对象。
可变对象:list, dictionary, set, byte array
不可变对象:int,long, complex