Python3 系列之 面向對象篇
阿新 • • 發佈:2019-02-10
pri count() get 面向 obj pie sel 基本 ins
面向對象的三大特性:繼承、封裝和多態
Python 做到膠水語言,當然也支持面向對象的編程模式。
封裝
class UserInfo(object): lv = 5 def __init__(self, name, age, account): self.name = name self._age = age self.__account = account def get_account(self): return self.__account @classmethod def get_name(cls): return cls.lv @property def get_age(self): return self._age if __name__ == "__main__": userinfo = UserInfo("hippie", 26, 123456) print(dir(userinfo)) print(userinfo.__dict__) print(userinfo._age) print(userinfo.get_account()) print(userinfo._UserInfo__account) print(UserInfo.lv) print(userinfo.get_age)
繼承
class UserInfo(object): lv = 5 def __init__(self, name, age, account): self.name = name self._age = age self.__account = account @property def get_account(self): return self.__account class UserInfo2(UserInfo): @property def get_account(self): return super().get_account + 10 if __name__ == "__main__": a = UserInfo("hippie", 26, 123456) print(a.get_account) b = UserInfo2("hippie", 26, 123456) print(b.get_account) print(isinstance(a, UserInfo)) print(isinstance(a, UserInfo2))
多態
class User(object): def __init__(self, name): self.name = name def printUser(self): print(self.name) class UserVip(User): def printUser(self): print("Hello VIP:" + self.name) class UserGeneral(User): def printUser(self): print("Hello User:" + self.name) if __name__ == "__main__": vip = UserVip("hippie") vip.printUser() vip = UserGeneral("jock") vip.printUser()
總結
封裝、繼承和多態是面向對象中的重要思想,對於 Python 這種高級語言,雖然很多地方從語法上可以不用面向對象的思想,但是對於項目構建來說,面向對象是基本要求,這樣做顯然是很有必要的。
相關參考
- Python 入門教程:【草根學 Python (基於Python3.6)】
Python3 系列之 面向對象篇