age前面为什么要加‘__’ 没有这个双下划线 对程序会有什么影响

age前面为什么要加‘__’ 没有这个双下划线 对程序会有什么影响

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手乔木 2019-12-02 14:36:09

同学你好:

同学提供的这部分代码是通过实例对象调用set_age方法,该方法需要传入age参数。

self.__age = age

这行代码是将传入age参数的值赋给实例对象的私有属性age。

由于同学在构造函数__init__中初始化age属性是私有属性。self.__age = age

因此不能去掉__,去掉之后为self.age是一个名为age的新属性,而私有属性age是名为__age的属性。

私有属性:当加上双下划线后,属性变为私有属性,外部无法操作。下图提示没有这个属性。

http://img1.sycdn.imooc.com//climg/5de4aed0098cfc5406750705.jpg

因此如果要修改私有属性的值,就需要自定义函数方法,进行修改。定义一个set_age方法。

http://img1.sycdn.imooc.com//climg/5de4afc009fa081905410706.jpg

这样就可以操作私有属性了。

如果我解决了同学的问题,请采纳!学习愉快^_^。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师