Python中Car类私有属性__isOnSale无法修改的问题排查
问题分析:Opel车辆__isOnSale属性无法修改的原因
核心错误
你的代码里最关键的问题出在SetIsOnSale方法的赋值语句上:
在这一行:
self.__isOnSale == newIsOnSaleStatus
你误用了双等号==(比较运算符)——它的作用是判断左右两边是否相等,不会对self.__isOnSale的实际值做任何修改。而我们需要的是单等号=(赋值运算符),用来把新状态赋值给私有属性。
修正方案
把SetIsOnSale方法里的错误语句替换为:
self.__isOnSale = newIsOnSaleStatus
修正后效果
修改后重新运行代码,调用car01.SetIsOnSale(True)时,Opel品牌车辆的__isOnSale属性会成功从False更新为True,最终打印的状态结果会符合预期。
注:你代码中对Python私有属性(双下划线开头)的使用逻辑是正确的,名称修饰机制没有问题,仅需修正赋值运算符即可解决问题。
内容的提问来源于stack exchange,提问作者jumi
相关产品推荐
相关产品推荐

