Python 八股总结01

浅拷贝和深拷贝----浅拷贝:只针对第一层开辟新内存存储,其他层依次引用; 深拷贝:所有层依次开辟新内存存储;

https://www.bilibili.com/video/BV1jT4y1G7AN/?spm_id_from=333.337.search-card.all.click&vd_source=8032a622c30074043ca0e56641da17f8

浅拷贝和深拷贝都是针对python的引用机制来说的。众所周知,python里面所有的赋值都是引用(指向),然而拷贝是复制,为什么会有引用呢?

浅拷贝由于你只拷贝了外在,没拷贝内在。所以你的内在还用的是人家的,就是引用了人家的,当人家内在一变,你的内在也跟着变。这就糟糕了,容易引发一些联动bug。

而深拷贝就是解决这个问题的。相当于我从头到脚、从里到外全部复制你一份,复制成我的,接着跟你就没有什么关系了。你变你的数值,也不会影响到我的数值。

所以我们可以看到,内在发生变化引起的联动bug使我们引入深拷贝的办法去解决。所以你能猜到不可变数据类型的深浅拷贝问题吗?

答对了!不可变数据类型没有深拷贝!!!因为即使数值发生变化,也会新建对象。和原值以及拷贝值没啥关系,没有人员伤亡。

python里面的可变数据类型的深拷贝用到copy这个模块,即

import copy
d = copy.deepcopy(a)
# 深拷贝仅针对可变数据类型。不可变数据类型深浅拷贝没啥区别,所以不可变数据类型没有copy.deepcopy()操作。

可以看下上方链接,讲的非常好。

1.浅拷贝图示,只有最外层被复制成新的了,内在用的还是人家的。

 

 2.深拷贝图示

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python八股文是指对于算法工程师来说,在面试或考试中常被问到的一些Python知识点和面试题目总结。下面是一些常见的Python八股文知识点: 1. Python的内存管理以及垃圾回收机制:Python使用引用计数来管理内存,并通过垃圾回收机制来处理循环引用的情况。 2. Python中的pass有什么作用:pass是一个空语句,用于占位,不做任何操作。 3. Python的strip:strip函数用于去除字符串两端的空白字符。 4. Python多线程中的IO型操作:在Python中,由于全局解释器锁(GIL)的存在,多线程并不能真正实现并行执行。对于IO型操作,多线程可以提高效率。 5. Python如何进行数据类型转换:可以使用int()、float()、str()等函数进行数据类型转换。 6. Python中的单下划线_和双下划线__:单下划线_是一个惯例,表示一个私有属性或方法,双下划线__是用于名称修饰,以避免名称冲突。 7. Python中的self、cls、@staticmethod、@classmethod:self是指实例本身,cls是指类本身,@staticmethod表示静态方法,@classmethod表示类方法。 8. Python中的super函数:super函数用于调用父类的方法。 9. Python中的特殊方法(魔法函数):特殊方法是以双下划线开头和结尾的方法,用于实现对象的特殊行为,比如__init__()用于初始化对象。 10. Python中的\_\_new\_\_()和\_\_init\_\_()和\_\_call\_\_()[1:\_\_new\_\_()用于创建对象,\_\_init\_\_()用于初始化对象,\_\_call\_\_()用于使对象可调用。 11. UTF-8和GBK的区别:UTF-8是一种可变长度的Unicode编码,支持多种语言,而GBK是用于中文字符的编码。 12. Python中的zip()函数:zip函数用于将多个可迭代对象打包成一个元组的列表。 以上是一些常见的Python八股文知识点,掌握了这些知识可以帮助你在面试或考试中更好地回答相关问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python 知识点/面试题目总结八股文)算法工程师必备](https://blog.csdn.net/CSSDCC/article/details/127050797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python八股文](https://blog.csdn.net/weixin_43570470/article/details/127726404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值