Python学习记录 私有属性和私有方法
生活随笔
收集整理的這篇文章主要介紹了
Python学习记录 私有属性和私有方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2022.08.14 DAY30
私有屬性和私有方法
- Python對于類的成員沒有嚴格的訪問控制限制,這是其與其他面向對象語言有區別。
- 私有方法和私有屬性要點:
- 通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public)。
- 類內部可以訪問私有屬性(方法)。
- 類外內部不能直接訪問私有屬性(方法)。
- 類外部可以通過"__類名__私有屬性(方法)名"訪問私有屬性方法。
實例:
# 測試私有屬性 class Employee:__company = "百戰程序員" # 類變量def __init__(self, name, age, score):self.name = nameself.age = age # 私有屬性self.__score = scoredef __work(self): # 私有方法print("{0}要好好工作".format(self.name))print("年齡:{0}".format(self.age))print("公司:{0}".format(self.__company))def test():e = Employee("YJP", 21, 99)print(e.name)print(e.age)print(e._Employee__score)# print(dir(e))e._Employee__work()print(Employee._Employee__company)if __name__ == "__main__":test()結果:
YJP 21 99 YJP要好好工作 年齡:21 公司:百戰程序員 百戰程序員@property裝飾器_get和set方法
- @property可以將一個方法的調用方式變成“屬性調用”。
實例:
# 測試私有屬性 class Employee:__company = "百戰程序員" # 類變量def __init__(self, name, age, salary):self.name = nameself.age = age # 私有屬性self.__salary = salarydef __work(self): # 私有方法print("{0}要好好工作".format(self.name))print("年齡:{0}".format(self.age))print("公司:{0}".format(self.__company))# 測試@property的最簡化使用@propertydef salary(self):print("salary run...")return self.__salary@salary.setterdef salary(self, salary):if 1000 < salary < 50000:self.__salary = salaryelse:print("錄入錯誤!薪水在1000--50000的范圍內。")def test():e = Employee("YJP", 21, 3000)print(e.name)print(e.age)print(e._Employee__salary)# print(dir(e))e._Employee__work()print(Employee._Employee__company)print(e.salary)e.salary = -2000print(e.salary)e.salary = 40000print(e.salary)if __name__ == "__main__":test()結果:
YJP 21 3000 YJP要好好工作 年齡:21 公司:百戰程序員 百戰程序員 salary run... 3000 錄入錯誤!薪水在1000--50000的范圍內。 salary run... 3000 salary run... 40000總結
以上是生活随笔為你收集整理的Python学习记录 私有属性和私有方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gogs项目管理使用教程
- 下一篇: 淘宝api开放平台SDK调用对接淘宝或天