python中class的定義及使用


 1 #類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。
 2 #對象:它是類的實例化。
 3 #方法:類中定義的函數。
 4  
 5 #類(Class) 由3個部分構成:
 6 '''
 7 類的名稱:類名
 8 類的屬性:指對象的特征(一組數據)
 9 類的方法:允許對象進行操作的方法 (行為/功能)
10 '''
11  
12 # Python 3.x中取消了經典類,默認都是新式類。
13 # 新式類的語法 -> class 類名(object): pass
14  
15 # 類對象支持兩種操作:屬性引用 和 實例化。
16 # 屬性引用的語法:obj.屬性
17 # 類實例化的語法:obj = 類名()
18 # 類中方法的調用:obj.方法名()
19  
20  
21 # 下面分析新式類的2種常見形式:
22  
23 #例1:
24 #自定義一個類student
25 class student(object):
26     def speak(self):  ## 哪個對象調用了這個方法,self就是那個對象;可以把self理解為一個形參
27         print("%s 說:我今年%s歲" % (self.name, self.age))
28  
29 #類student 實例化一個對象john
30 john = student()
31 # 給對象添加屬性
32 john.name = "約翰"
33 john.age = 19
34 # 調用類中的 speak()方法
35 john.speak()
36 #<<<約翰 說:我今年19歲
37  
38  
39 #例2:
40 class student(object):
41     # 定義構造方法
42     def __init__(self, n, a):  #__init__() 是類的初始化方法;它在類的實例化操作后 會自動調用,不需要手動調用;
43         # 設置屬性
44         self.name = n
45         self.age = a
46     # 定義普通方法
47     def speak(self):
48         print("%s 說:我今年%s歲" % (self.name, self.age))
49  
50 #類student 實例化一個對象john
51 john = student("約翰",19)
52  
53 # 調用類中的 speak()方法
54 john.speak()
55 #>>>約翰 說:我今年19歲
56  
57 # 在python中使用__開頭 並以__結尾的方法,稱之為魔法方法;
58 # __init__(self) 是類的初始化方法,也稱構造方法,是一種特殊的魔法方法。
59 # __init__(self)在實例化后,會自動調用,而不用手動調用,所以一般把屬性設置在_init__()里。
60 # 常用到的魔法方法還有:__str__(self) 、 __del__(self)等。
61  
62 ## __str__(self)
63 class student(object):
64     # 定義構造方法
65     def __init__(self, n, a):
66         # 設置屬性
67         self.name = n
68         self.age = a
69         
70     # 輸出一個字符串(追蹤對象屬性信息變化)
71     def __str__(self):  # __str__(self)不可以添加參數(形參)
72         return "名字:%s 年齡:%d" % (self.name, self.age)
73  
74 # 實例化一個對象john
75 john = student("約翰",19)
76  
77 # 當使用print輸出對象時,只要自己定義了__str__(self)方法,那么就會打印從在這個方法中return的數據
78 print(john)
79 #>>>名字:約翰 年齡:19
80 
81 ————————————————
82 版權聲明:本文為CSDN博主「pdstar」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
83 原文鏈接:https://blog.csdn.net/pdstar/article/details/90900944

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM