一个下划线的受保护属性是什么意思?

一个下划线的受保护属性是什么意思?

已经提过问、知道一个下划线是受保护的属性了,但想想还是没懂怎么用。老师说的“只有实例对象能调用它,其他地方需要类提供接口”,但是在写代码进行封装的时候不是肯定也是self._"属性名"吗?这个self也不能算是实例对象吧。

正在回答

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

2回答

同学,你好。

  1. python的权限控制机制并没有那么强,如果变量名前加一个下划线,那么这个变量是protected的,一般来说是受到保护的,外部不应该修改,但是,这只是一个约定,实际上你可以对protected的变量进行修改;

  2. self._"属性名"中的self是实例对象,只有实例对象可以调用它自己的属性;

  3. self._img_list在飞机大战项目中self可以用到受保护的属性_img_list的值,只是既然要用到,可以去掉受保护的限制。

如果解决了你的疑惑,请采纳,祝学习愉快~

提问者 江民川 2020-05-18 16:01:26

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

老师是在这里用self._img_list的时候要扩大权限,self为什么都不能用上这个受保护的属性?

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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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