为什么age前面要有下划线 sex前面就没有,以后怎么区分该不该加下划线

为什么age前面要有下划线 sex前面就没有,以后怎么区分该不该加下划线

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

为什么age前面要有下划线 sex前面就没有,以后怎么区分该不该加下划线

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

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

1回答
好帮手乔木 2019-12-01 16:49:40

同学你好:

Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,不能外部访问,因为Python解释器对外把 __xxx变量改成了_classname__xxx,所以,仍然可以通过_classname__xxx来访问__xxx变量。在开发中,所有的开发人员默认加双下划线后,该属性不能被访问。因此加不加__(双下划线)是由同学自己去决定是否将其变为私有属性。

class Student:
    def __init__(self, name, age):
        self.__name = name
        self.age=age

stu = Student('hello',30)
print(stu.age) #输出30
print(stu.__name) #报错:AttributeError: 'Student' object has no attribute '__name'
print(stu._Student__name) #输出hello

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

  • 非常感谢这位老师的解答,虽然不是我问的问题,但是却真正的解决了我的疑问,在问答区找了很久关于私有变量的问题,但是都只解释了表现和应用,没有给出原理,看了老师的解答并且进行了私有类变量和私有实例变量的测试,顿时感觉茅塞顿开,非常感谢
    2020-03-25 00:13:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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