Python 學習筆記 -- 類和實例
阿新 • • 發佈:2017-12-18
isdigit 特殊 .... 方法 raise fun angle 總結 area
1 #創建一個類,類是一種具有相同屬性和方法的抽象 2 #創建類需要使用class關鍵字,並且定義方法時,方法的第一個參數是self 3 class Student(object): 4 5 #這點與C/C++、C#的語法不同,簡單區別下,定義類屬性需要在特殊方法__init__內部 6 def __init__(self,name,score): 7 self.name = name #註意了,這裏才是類內的屬性,為類屬性 8 self.score = score #同樣的,這也是類屬性 9 10 def fun(self):11 print("這就是類內定義一個類的方法") 12 13 def print_name(self): 14 print(self.name) 15 16 def print_score(self): 17 print(self.score) 18 19 #實例:創建對象,並調用對象的方法 20 omega = Student("歐米茄",100) 21 omega.print_name() 22 omega.print_score() 23 24 #其他的一些實例: 25 class Person(object): 26 27def __init__(self, name="歐米茄"): 28 self.name = name 29 30 def print_name(self): 31 print(self.name) 32 33 omega = Person() 34 omega.print_name() 35 36 37 #矩形實例: 38 class Rectangle(object): 39 40 def __init__(self,long = 0,breadth = 0): 41 self.long = long 42 self.breadth = breadth43 44 def setRect(self): 45 try: 46 print("請輸入矩形的長和寬....") 47 long = input("長:") 48 breadth = input("寬:") 49 if not long.isdigit() or not breadth.isdigit() or long == "" or breadth == "": 50 raise ValueError("輸入的值錯誤!") 51 52 self.long = int(long) 53 self.breadth = int(breadth) 54 except: 55 print("輸入錯誤!") 56 57 def getRect(self): 58 print("矩形長度為:%d,矩形寬度為:%d"%(self.long,self.breadth)) 59 return self.long,self.breadth 60 61 def getArea(self): 62 print("矩形面積為:",self.long * self.breadth) 63 64 rect = Rectangle(3,5) 65 rect.getArea() 66 rect.setRect() 67 rect.getRect() 68 rect.getArea() 69 70 71 #總結下: 72 """ 73 註意:上面的實例目前只能體現出封裝的特性。 74 以下這些只是我先總結的,簡單點,不想搞得太復雜 75 面向對象有三大基本特征:封裝、繼承、多態 76 封裝:就是講客觀事物封裝成抽象類,並對一些不可信的類隱藏信息 77 繼承:主要是用於代碼重用。 78 多態:Python的多態,顯示在繼承上,比如說A B C三個類都有add方法,print_value方法負責調用它們的add方法。 79 如果 它們同時繼承與 D ,且D有add方法,那麽 print_value(d): print(d.add()) 可以傳入A B C三種類的對象。 80 且,調用的add函數,根據實例本身的類型。 81 82 """
值得註意的是,Python類方法的第一個參數self,這其實就是C++裏的this*,也就是對象本身。
Python 學習筆記 -- 類和實例