为了账号安全,请及时绑定邮箱和手机立即绑定

python为什么不设计私有属性呢?

python为什么不设计私有属性呢?

正在回答

1 回答

#看你怎么理解这个私有的含义:

class Person:
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender


class Student(Person):
    def __init__(self, name, gender, age, snum):
        super(Student, self).__init__(name, gender)
        self.__age = age
        self.studentnumber = snum

p = Student('Tom', 'Male', 19, 32)

print(p.gender)
print(p.__dict__)
print(p.__age)

'''

执行之后:

Male
{'name': 'Tom', 'gender': 'Male', '_Student__age': 19, 'studentnumber': 32}
Traceback (most recent call last):
  File "D:\Program Files (x86)\Python 3.6.1 (64bit)\Python script practices\new_1.py", line 17, in <module>
    print(p.__age)
AttributeError: 'Student' object has no attribute '__age'

这里即说明__age这个属性从外部访问来看,是没有的,从p这个属性字典key中__age属性是以_Student__age的形式体现,可以这么理解为__age是属于Student类的私有属性

当然这个所谓的私有属性,在特殊情况需要修改的时候,也是可以外部访问修改,改变访问语句即可,看个人需要吧

这是我的个人理解

'''

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

python为什么不设计私有属性呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信