-
定義繼承類(lèi)需注意:
1、子類(lèi)定義的時(shí)候,需要在括號(hào)內(nèi)寫(xiě)明繼承的類(lèi);
2、在__init__()方法,需要調(diào)用super(Student, self).__init__(name, gender),來(lái)初始化從父類(lèi)繼承過(guò)來(lái)的屬性;查看全部 -
利用filter()函數(shù),可以完成很多很有用的功能,例如,刪除 None 或者空字符串:
def?is_not_empty(s): ????return?s?and?len(s.strip())?>?0 for?item?in?filter(is_not_empty,?['test',?None,?'',?'str',?'??',?'END']): ????print(item)? ##?test,?str,?END
注意: s.strip()會(huì)默認(rèn)刪除空白字符(包括'\n', '\r', '\t', ' '),如下:
s?=?'?????123' s.strip()?#?==>?123 s=?'\t\t123\r\n' s.strip()?#?==>?123
查看全部 -
如果要限制添加的屬性,例如,Student類(lèi)只允許添加 name、gender和score 這3個(gè)屬性,就可以利用Python的一個(gè)特殊的__slots__來(lái)實(shí)現(xiàn)。
class?Student(object): ????__slots__?=?('name',?'gender',?'score') ????def?__init__(self,?name,?gender,?score): ????????self.name?=?name ????????self.gender?=?gender ????????self.score?=?score
使用__slots__ = ('name', 'gender', 'score') 限定Student類(lèi)的屬性,這個(gè)時(shí)候在外部再次添加動(dòng)態(tài)屬性age,將會(huì)報(bào)錯(cuò)。
查看全部 -
python中的多態(tài)
在實(shí)際調(diào)用的時(shí)候,會(huì)首先查找自身的定義,如果自身有定義,則優(yōu)先使用自己定義的函數(shù);如果沒(méi)有定義,則順著繼承鏈向上找。
python中的多重繼承
查看全部 -
在繼承鏈上,一個(gè)父類(lèi)的實(shí)例不能是子類(lèi)類(lèi)型,因?yàn)樽宇?lèi)比父類(lèi)多了一些屬性和方法。
在一條繼承鏈上,一個(gè)實(shí)例可以看成它本身的類(lèi)型,也可以看成它父類(lèi)的類(lèi)型。
查看全部 -
如果類(lèi)屬性和實(shí)例屬性名字相同時(shí),會(huì)怎么樣,這就涉及Python中類(lèi)屬性和實(shí)例屬性的優(yōu)先級(jí)的問(wèn)題了。
在類(lèi)屬性和實(shí)例屬性同時(shí)存在的情況下,實(shí)例屬性的優(yōu)先級(jí)是要高于類(lèi)屬性的
但是通過(guò)實(shí)例是無(wú)法修改類(lèi)的屬性的,通過(guò)實(shí)例方法修改類(lèi)屬性,只是給實(shí)例綁定了一個(gè)對(duì)應(yīng)的實(shí)例屬性
查看全部 -
1、class Student()定義的時(shí)候,需要在括號(hào)內(nèi)寫(xiě)明繼承的類(lèi)Person
2、在__init__()方法,需要調(diào)用super(Student, self).__init__(name, gender),來(lái)初始化從父類(lèi)繼承過(guò)來(lái)的屬性
查看全部 -
1、類(lèi)方法需要使用@classmethod來(lái)標(biāo)記為類(lèi)方法,否則定義的還是實(shí)例方法
2、類(lèi)方法的第一個(gè)參數(shù)將傳入類(lèi)本
查看全部 -
1、外部需要操作私有屬性時(shí),通過(guò)定義類(lèi)或者實(shí)例的方法來(lái)操作私有屬性
2、實(shí)例的方法就是在類(lèi)中定義一個(gè)函數(shù),而該函數(shù)的第一個(gè)必須是self,用于指向調(diào)用該方法的實(shí)例對(duì)象本身
3、外部調(diào)用是無(wú)需顯式傳遞self參數(shù)
4、可以把和類(lèi)的實(shí)例有關(guān)的操作都抽象成實(shí)例方法
查看全部 -
類(lèi)的私有屬性不能被外部的對(duì)象訪問(wèn),只能在內(nèi)部訪問(wèn)
查看全部 -
1、在類(lèi)屬性和實(shí)例屬性同時(shí)存在的情況下,實(shí)例屬性的優(yōu)先級(jí)是要高于類(lèi)屬性的,在操作實(shí)例的時(shí)候,優(yōu)先是操作實(shí)例的屬性。
2、當(dāng)實(shí)例沒(méi)有和類(lèi)同名的時(shí)候,通過(guò)實(shí)例對(duì)象,依然可以訪問(wèn)到類(lèi)屬性
3、可見(jiàn)通過(guò)實(shí)例是無(wú)法修改類(lèi)的屬性的,事實(shí)上,通過(guò)實(shí)例方法修改類(lèi)屬性,只是給實(shí)例綁定了一個(gè)對(duì)應(yīng)的實(shí)例屬性
4、?類(lèi)屬性前面加上__變?yōu)樗接袑傩院退接蟹椒?、以及子?lèi)都不能通過(guò)對(duì)象直接訪問(wèn),但是可以在本內(nèi)部訪問(wèn)
查看全部 -
1、實(shí)例是根據(jù)類(lèi)創(chuàng)建的對(duì)象,實(shí)例的屬性值對(duì)該實(shí)例有影響,,類(lèi)的屬性不屬于任何一個(gè)對(duì)象,是屬于類(lèi),所有實(shí)例都可以訪問(wèn)該屬性
2、實(shí)例惡屬性每個(gè)實(shí)例各自擁有,互相獨(dú)立,而類(lèi)屬性有且只有一份,可以動(dòng)態(tài)添加和修改
查看全部 -
1、類(lèi)名首字母大寫(xiě)
查看全部 -
所以,帶參數(shù)的log函數(shù)首先返回一個(gè)decorator函數(shù),再讓這個(gè)decorator函數(shù)接收my_func并返回新函數(shù),相當(dāng)于是在原有的二層嵌套里面,增加了一層嵌套
查看全部 -
要讓 @log 自適應(yīng)任何參數(shù)定義的函數(shù),可以利用Python的?args 和 *kwargs,保證任意個(gè)數(shù)的參數(shù)總是能正常調(diào)用:
查看全部
舉報(bào)