【Python笔记】深拷贝、浅拷贝、参考

深拷贝、浅拷贝具体看:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

b=a[:] 属于浅拷贝

参考:

当创建一个对象,并将它赋值给一个变量时,这个变量只是这个对象的一个参考,而不是这个变量本身。即变量名指向内存中这个对象的地址。可哈希对象原则上是没有深、浅拷贝一说的,只有参考。

a=[1,2,3]#a为参考
b=a#b也为[1,2,3]的参考
c=a[:]#c为新对象a[:]的参考 a[:]为[1,2,3]的浅拷贝,若其中3为一个可变对象d,则c[2]与a[2]指向同一个内存,即d所指向的内存

#非可哈希对象也一样
a=[5]
b=(1,2,a)#非可哈希对象
c=[1,2,a]#非可哈希对象
a[0]=3
b
Out[17]: (1, 2, [3])
c
Out[18]: [1, 2, [3]]

#可哈希对象
a=(1,2,3)

函数也是 对象,也一样:

def hi(name="yasoob"):
    return "hi " + name
 
print(hi())
# output: 'hi yasoob'
 
# 我们甚至可以将一个函数赋值给一个变量,比如
greet = hi
# 我们这里没有在使用小括号,因为我们并不是在调用hi函数
# 而是在将它放在greet变量里头。我们尝试运行下这个
 
print(greet())
# output: 'hi yasoob'
 
# 如果我们删掉旧的hi函数,看看会发生什么!
del hi
print(hi())
#outputs: NameError
 
print(greet())
#outputs: 'hi yasoob'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值