課程
/后端開發
/Python
/Python-面向對象
python為什么不設計私有屬性呢?
2017-07-16
源自:Python-面向對象 3-2
正在回答
#看你怎么理解這個私有的含義:
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類的私有屬性
當然這個所謂的私有屬性,在特殊情況需要修改的時候,也是可以外部訪問修改,改變訪問語句即可,看個人需要吧
這是我的個人理解
舉報
Python面向對象教程,帶你深入了解python面向對象特性
2 回答新建類language屬性標紅
1 回答訪問構造的屬性出錯
1 回答python也有析構函數啊
2 回答為什么我的會報錯呢
4 回答請問學習Python面向對象是不是得先學習Python
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-16
#看你怎么理解這個私有的含義:
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類的私有屬性
當然這個所謂的私有屬性,在特殊情況需要修改的時候,也是可以外部訪問修改,改變訪問語句即可,看個人需要吧
這是我的個人理解
'''