python中类属性不能是对象_在python类中更新了对象的属性,但没有得到反映

跟踪执行情况.

s1=stud('student1',40)

这套

> s1.name到“student1”

> s1.mark到40

> s1.message to“student1 40”

将属性值视为框.三个盒子中的每一个都有一个值.其中两个拿着弦.其中一人持有一个号码.他们将保留这些值,直到明确指定它们为止.特别是属性消息没有IDEA如何获得它的价值.它不知道它通过连接name属性和mark属性来获得它的价值.它只知道它的价值是“student1 40”.

print s1.message

这输出了student1 40(毫不奇怪)

s1.name='student2'

您更新了三个属性中的一个.但你没有更新其他人.

print s1.message

由于您从未明确更改过s1.message,因此仍会输出student1 40.

关键是s1.message的值只是一个字符串.没有看不见的计算,只要初始化它的表达式发生变化,它就会自动更新它.其他语言可能也是这样,但Python却没有.

如果您想要这种行为,请执行以下操作:

class stud():

def __init__(self,a,b):

self.name=a

self.mark=b

@property

def message():

return self.name + ' ' +str(self.mark)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值