python可变参数和可改变对象

可改变对象:

就是对象地址不变的情况下,内容可以改变 比如list ,可赋值的对象等等

#可变对象作为默认实参
def getList(ch,sum = []):
	sum.append(ch)
	return sum

'''
print(getList('a'))
print(getList('b'))
print(getList('c'))
'''

#调用3次getList ,使用默认的sum = [] 看看什么结果
getList('a')
getList('b')
getList('c')
print(getList('d'))
#结果是['a','b','c','d'],说明每一次追加字符都是加到1个sum里面,
#不是想象的每调用1次getList,sum就会重新赋值1次
#也就是默认参数开始赋值了1次,以后如果不重新指定新值,不会改变,调用多次都不会刷新赋值,就是只赋值第一次
##仅仅针对可变对象才能看出来结果

####可变对象就是 在对象地址不变的情况下,可以改变里面的值???

class test(object):
	age = 10
	def setAge(self,age):
		self.age = age
		
	def getAge(self):
		return self.age
	

c = test()	
def classTest(ch , obj = c):
	obj.age = obj.age+ch
	return obj.age
	
classTest(5)

print(classTest(10))##  因为obj只指向对象c,所以每调用1次,age就会往上加1次

##如果对obj重新赋值

print(classTest(3,obj = test()))  //最终只打印出来13了


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值