python 变量和对象
2022/3/19 20:28:23
本文主要是介绍python 变量和对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C变量是值的容器,用于保存相应的值。
Python 也有变量和值的概念,但是值是独立的对象,而变量是用来标识(引用)对象的。对象有类型,不同对象的大小也不同,我们不需要知道对象的大小,只需要根据对象的类型正确使用,如果某个对象不用了,python会有回收机制将其回收。
id(1) >>140723104982832 a=1 id(a) >>140723104982832
变量的赋值和共享:
两个变量之间进行赋值,等同于两个变量共享(引用)同一个对象
b=a ##不可变对象情况 id(b) >>140723104982832 c=[1,2,3] ##列表是一个可变对象 d=c id(c) >>3113652251584 id(d) >>3113652251584 c.append(4) c >>[1, 2, 3, 4] id(c) >>3113652251584 d >>[1, 2, 3, 4] id(d) >>3113652251584 c=c+[5] #对列表进行+操作会生成新对象 id(c) >>3113652144000 z=[1,2,3,4] id(z) >>3113652295232
拷贝和共享
表拷贝是构造另一个“同样”的表,但是只拷贝表的一层,如果表中的元素是不可变对象那么共享元素不会带来问题,如果拷贝表中的元素是可变对象,则需要深度拷贝。
a1=[[i+j for i in range(3)] for j in range(3)] a1 >>[[0, 1, 2], [1, 2, 3], [2, 3, 4]] a2=a1.copy() a1[0][0]=5 a1 >>[[5, 1, 2], [1, 2, 3], [2, 3, 4]] a2 >>[[5, 1, 2], [1, 2, 3], [2, 3, 4]] ##解决方案 一层层复制 a1=[[i+j for i in range(3)] for j in range(3)] a3=[[x for x in vec] for vec in a1] a3 >>[[0, 1, 2], [1, 2, 3], [2, 3, 4]] ##深度copy import copy a4=copy.deepcopy(a1) a4 >>[[0, 1, 2], [1, 2, 3], [2, 3, 4]] a1[0][0]=5 a1 >>[[5, 1, 2], [1, 2, 3], [2, 3, 4]] a3 >>[[0, 1, 2], [1, 2, 3], [2, 3, 4]] a4 >>[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
这篇关于python 变量和对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python