這篇文章主要介紹“Python3的面向?qū)ο笈e例分析”,在日常操作中,相信很多人在Python3的面向?qū)ο笈e例分析問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Python3的面向?qū)ο笈e例分析”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
鄰水ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
# 面向?qū)ο骾mport abcfrom enum import Enum, unique@unique # unique確保無重復(fù)值class Weekday(Enum): """ 枚舉類 """ # 左邊為name,右邊為value Sun = 0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6class Person(metaclass=abc.ABCMeta): """ Person 為抽象類,Person的子類需要實(shí)現(xiàn)抽象方法 """ @abc.abstractmethod def abs_m(self): print("Person:abs_m")class Student(Person): """ Student Doc """ # 實(shí)現(xiàn)抽象方法 def abs_m(self): print("absMethod") # 使用父類引用 def sup(self): super().abs_m() # count為類屬性 count = 0 # 類方法 @classmethod def cm(cls): print("classMethod:", Student.count) # 靜態(tài)方法 @staticmethod def sm(): print("staticMethod:", Student.count) # 實(shí)例私有方法 def __p(self): # 如果沒有使用到self,這里可能會(huì)警告this method may be static print("私有方法", self) # 定義該類只允許有這些屬性 __slots__ = ('name', '__age', "_gender") def __init__(self, name, age, gender): # 這是實(shí)例屬性,外部可以直接訪問 self.name = name # 兩個(gè)下劃線開頭是私有屬性,在外部不能訪問(如果要強(qiáng)行訪問,可以使用s._Student__name,但不建議這樣做) self.__age = age # 一個(gè)下劃線開頭也表示私有屬性,在外部可以直接訪問,但不建議訪問(為什么這樣設(shè)計(jì)?) self._gender = gender pass # 雙下劃線開頭和結(jié)尾的是特殊方法或變量,不是私有的,外部可以訪問 # 因此不要把方法或?qū)傩悦x為雙下劃線開頭和結(jié)尾 def __str__(self): return f"{self.name}, {self.__age}, {self._gender}"if __name__ == '__main__': print(Student("jack", 12, "male").cm()) print(Student("jack", 12, "male").sm()) s = Student("jack", 12, "male") # s的具體類型 print(type(s).__name__) # 內(nèi)置attr函數(shù)使用 print(hasattr(s, "name")) print(getattr(s, "name")) # print(delattr(s, "name")) # print(setattr(s, "abc", 1)) # s是否是某個(gè)類型 print(isinstance(s, Student)) # Student類是否是某個(gè)類的子類 print(issubclass(Student, object)) # 調(diào)用s.__str__()方法 print(s) # 使用枚舉類 day = Weekday.Monprint(day.name) print(day.value)
class A(object): bar = 1def func1(self):print('foo') @classmethoddef func2(cls):print('func2')print(cls.bar) cls().func1() # 調(diào)用 foo 方法A.func2() # 不需要實(shí)例化
class C(object): @staticmethoddef f():print('runoob'); C.f(); # 靜態(tài)方法無需實(shí)例化cobj = C() cobj.f() # 也可以實(shí)例化后調(diào)用
到此,關(guān)于“Python3的面向?qū)ο笈e例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
分享標(biāo)題:Python3的面向?qū)ο笈e例分析
鏈接URL:http://aaarwkj.com/article36/pcchsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站制作、虛擬主機(jī)、、定制開發(fā)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)