在python代碼開頭肖抱,需要添加__metaclass__=type砌溺,表示新式類
構(gòu)造方法
用__init__實(shí)現(xiàn)阁将,例如
class foorbar:
? ? def __init__(self):
? ? ? ? self.somvar=42
>>>f=foorbar()
>>>f.somvar
42
構(gòu)造方法在python中特別常用
繼承
寫法 class b(a) 表示b類繼承a類潦刃,若子類繼承后重寫init侮措,則有可能會(huì)導(dǎo)致a類的init中的某些功能丟失,此時(shí)需要用到super
在繼承類的init中添加一行 super(a).__init__()即可初始化超類
屬性
為了簡化使用方法乖杠,引入屬性property
使用方法 property(方法1分扎,方法2,方法3胧洒,字符串)畏吓,四個(gè)方法分別對(duì)應(yīng)fget fset fdel doc,方法1必須是只讀卫漫,方法2必須是只寫菲饼,方法3必須是刪除,第四個(gè)表示說明汛兜。
理論上巴粪,新式類中應(yīng)該使用property而不是訪問器方法
還可參考?https://www.runoob.com/python/python-func-property.html
裝飾器(了解)
靜態(tài)方法 無self參數(shù),使用staticmethod(函數(shù)名) 的方式粥谬,或者在方法上一行用@staticmethod
類成員方法 有cls參數(shù)肛根,使用classmethod(函數(shù)名) 的方式,或者在方法上一行用@classmethod
迭代器
定義方法__iter__漏策,該方法返回一個(gè)迭代器派哲,一般放在會(huì)在for中循環(huán)使用的對(duì)象中,同時(shí)類中需要實(shí)現(xiàn)next方法掺喻,即循環(huán)生成迭代器的方法芭届。
生成器
任何包含yield的語句的函數(shù)成為生成器储矩,函數(shù)會(huì)產(chǎn)生多個(gè)值,每次返回一個(gè)值褂乍,與迭代器不同持隧,迭代器將多個(gè)值一起返回,迭代逃片。因?yàn)榈髅看蔚統(tǒng)ield時(shí)會(huì)返回當(dāng)前所有執(zhí)行信息屡拨。
樣例參考?https://www.runoob.com/python3/python3-iterator-generator.html