標籤:
1.類
class Student(object): def __init__(self, name, score): self.name = name self.score = score
1)__init__
構造方法,__init__
方法的第一個參數永遠是self
,表示建立的執行個體本身,調用時,不用傳遞該參數。
2)__del__ 解構函式,釋放對象時使用
3)__call__函數調用
2.一個簡單的例子:
class Studet(object): def __init__(self,name,score): self.name=name self.score=score def print_score(std): print ‘%s: %s‘ % (std.name, std.score) def get_grade(self): if self.score >= 90: return ‘A‘ elif self.score >= 80: return ‘B‘ elif self.score >=70: return ‘C‘ else : return ‘D‘ares=Studet(‘ares‘,90)ares.print_score()print ‘The score grade is :‘,ares.get_grade()
3.變數:
1)__ares表示ares為 私人變數 (private),只有內部可以訪問,外部不能訪問
2)以雙底線開頭,並且以雙底線結尾的,是特殊變數,特殊變數是可以直接存取的
3)以一個底線開頭的執行個體變數名,比如_name
,這樣的執行個體變數外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變數時,意思就是,“雖然我可以被訪問,但是,請把我視為私人變數,不要隨意訪問”。
4.處理函數:
1)type()
函數:判斷物件類型
2)isinstance()
函數:判斷class的類型
3)dir()
函數:獲得一個對象的所有屬性和方法
5.繼承和多態:
1)繼承模板
class Animal(object):
def fun():
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
Animal為Dog和Cat的父類。
2)優點:
a.繼承可以把父類的所有功能都直接拿過來,這樣就不必重零做起,子類只需要新增自己特有的方法,也可以把父類不適合的方法覆蓋重寫;
b.多態
6.多重繼承:
類在繼承關係時,通常,主線都是單一繼承下來的,如果需要“混入”額外的功能,通過多重繼承就可以實現。
class Animal(object):
def fun():
pass
class Runnable(object):
def run(self):
print(‘Running...‘)
多重繼承:
class Dog(Animal
, Runnable):
pass
python筆記四:物件導向