1. 程式人生 > >Python 學習筆記 -- 類和實例

Python 學習筆記 -- 類和實例

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 27
def __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 = breadth
43 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 學習筆記 -- 類和實例