位置: IT常识 - 正文

一切皆对象和深浅拷贝(一切皆对象什么意思)

编辑:rootadmin
1.一切皆对象 在python中int、dict类都继承自object类,int和dict又都是type类的对象 print(type(int)) # <class 'type'> print(type(dict)) # <class 'type'> 那么type和object又是什么关系呢?我们来 ... 1.一切皆对象

推荐整理分享一切皆对象和深浅拷贝(一切皆对象什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:一切皆是什么意思,一切皆是对象,一切都是对象,一切皆可对比,一切皆是对象,一切皆是对象,一切皆是对象,一切皆对象什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

在python中int、dict类都继承自object类,int和dict又都是type类的对象

print(type(int)) # <class 'type'>print(type(dict)) # <class 'type'>

那么type和object又是什么关系呢?我们来type一下object和type!

print(type(type)) #<class 'type'>print(type(object)) #<class 'type'>

其实:

一切皆对象和深浅拷贝(一切皆对象什么意思)

1.object的元类其实是type类,object是由type类构造出来的对象2.type是自己的对象(指针指向了自己)3.type类又继承了object类

1.1一切皆对象的好处

它可以通过一切皆对象,使得任何类型的变量值能够赋值给变量!因为,其本质是变量都指向了一个内存地址,而并不是直接指向具体的数据(在其他语言中不能这样)

2.深浅拷贝

1.赋值,本质是多了一个变量指向另一个变量的内存地址

l = [11,22,[311,444,55]]l2 = l # 赋值操作,本质就是l2指向了l的内存地址print(l2 is l) # 结果为true

2.浅拷贝,本质是又拷贝一份内存地址指向对应的变量值

from copy import copyl = [111,222,[333,444]]l3 = copy(l) # 浅拷贝,只是拷贝了l的内存地址print(l3 is l) # 结果为false# 修改l3的列表值,l也会改变!

3.深拷贝:本质内存地址、值全部拷贝一份,非常占内存!

from copy import deepcopyl = [111,222,[333,444]]l4 = deepcopy(l)print(l4 is l) # 结果为false# 深拷贝是把内存地址、变量值全部拷贝了一份,所以修改l4中列表的值,l并不会改变# 注意:深拷贝,拷贝的时候l列表里面的不可变类型地址并不会改变,改变的是可变类型的地址!!
本文链接地址:https://www.jiuchutong.com/zhishi/309302.html 转载请保留说明!

上一篇:phpcms中phpsso是什么?(php是什么)

下一篇:ps抠图教程之使用魔棒工具抠图(ps抠图怎样)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络