基礎-面向對象編程
1、類:
class[類名]:[代碼主體] python中的類名都是以大寫字母開頭,且采用駝峰命名法。
代碼主題是一個叫方法的復合句。方法類似于函數,但有兩處區別:一是必須在類的內部定義方法。二是必須接受至少一個參數。按照慣例,方法的第一個參數總是被命名為self。在對象(實例)上調用方法時,python會自動調用方法的對象作為參數傳入;可以使用self定義實例變量:屬于對象的變量。通過self.[變量名]=[變量值]定義實例變量。通常是在特殊方法__init__(代表初始化)中定義實例變量,創建對象時python會調用該方法。創建對象的過程,也被稱作創建類的實例:
class Rectangle: def __init__(self,w,l): self.width=w self.len=l def area(self): return self.width*self.len def change_size(self,w,l): self.width=w self.len=l r1=Rectangle(10,20) print(r1.area()) r1.change_size(20,40) print(r1.area()) ''' 輸出結果: ================ RESTART: E:\Program Files\python3.8\study\t1.py =============== 200 800 '''
2、繼承:子類可以繼承父類的屬性和方法,創建子類時,將父類的類名傳入子類,即可繼承父類的屬性;
當子類繼承父類的方法時,可以定義一個與繼承的方法名稱相同的新方法,從而改變繼承,稱為方法覆蓋;
class Shape: def __init__(self,w,l): self.width=w self.len=l def print_size(self): print("{}by{}".format (self.width,self.len)) class Square(Shape): def area(self): return self.width*self.len def print_size(self): print("I am {} by {}".format(self.width,self.len)) a=Square(30,20) a.print_size() ''' 輸出結果: ================ RESTART: E:\Program Files\python3.8\study\t1.py =============== I am 30 by 20 '''
3、類變量和實例變量:在類中又2種變量,類變量(class variable)和實例變量(instance variable)。類變量的定義方式和普通變量相同,但必須在類內部定義;實例變量通過語法self.[變量名]=[變量值]定義。類變量可以在不使用全局變量的情況下,在類的所有實例之間共享數據。
class Shape: recs=[] def __init__(self,w,l): self.width=w self.len=l self.recs.append((self.width,self.len)) def print_size(self): print("{}by{}".format (self.width,self.len)) a=Shape(30,20) b=Shape(200,100) c=Shape(3,5) print(Shape.recs) ''' 輸出結果: ================ RESTART: E:\Program Files\python3.8\study\t1.py =============== [(30, 20), (200, 100), (3, 5)] '''
4、魔法方法
python中所有的類,均繼承自一個叫Object的父類。python在不同情況下會使用從Object中繼承的方法,如打印對象時,會調用從Object繼承的魔法方法__repr__;
5、is 如果兩個對象時相同的對象,關鍵字is返回True,反之則返回False;還可以使用is關鍵字檢查變量是否為None;

浙公網安備 33010602011771號