Python學習筆記之六:Python中的類
1 類的定義
類(Class)是面向物件程式設計(OOP,Object-Oriented Programming)實作資訊封裝的基礎,類是一種用戶定義的參考資料型別,也稱型別別,每個類包含資料說明和一組操作資料或傳遞訊息的函式,
涉及到的名詞解釋:
實體化:根據類來創建物件被稱為實體化,
屬性:通過實體可以訪問的變數被稱為屬性,
方法:類中的函式被稱為方法,
2 類的使用
2.1 類中的__init__()方法
在每次根據類創建實體時,python都會自動運行__init__()方法,類中的任何方法至少都需要包含一個形參self,且該形參必須位于其他形參前面,具體使用方法如下實體所示:
#Python中約定類名的首字母大寫
class Student():
def __init__(self, name, sex, age):
#使用self.前綴定義的屬性(變數)可以供類中所有的方法使用,也可以通過實體對其進行訪問
self.name = name
self.sex = sex
self.age = age
#類中所有的方法都需要包含形參self
def student_info_show(self):
#在類的方法中可以對類中帶有self.前綴的變數進行訪問
print(str(self.name) + " is a(n) " + str(self.age) + " years old " + str(self.sex))
#創建一個實體student_1
student_1 = Student('Xiaoming', 'Boy', 12)
#通過實體student_1呼叫類中定義的方法
student_1.student_info_show()
#通過實體student_1訪問類中的屬性(變數)
print("Name is " + str(student_1.name))
上述代碼的運行結果如下所示:
Xiaoming is a(n) 12 years old Boy
Name is Xiaoming
2.2 類的實體化(即根據類創建物件)
在實際使用中我們可以根據類創建任意數量的實體,具體使用方法如下實體所示:
class Student():
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
def student_info_show(self):
print(str(self.name) + " is a(n) " + str(self.age) + " years old " + str(self.sex))
#創建一個實體student_1
student_1 = Student('Xiaoming', 'Boy', 12)
student_1.student_info_show()
#創建一個實體student_2
student_2 = Student('Xiaohong', 'Girl', 11)
student_2.student_info_show()
上述代碼的運行結果如下所示:
Xiaoming is a(n) 12 years old Boy
Xiaohong is a(n) 11 years old Girl
2.3 繼承
在撰寫類時,也可以使用繼承的方法來基于另一個現成的類創建新的類,一個類繼承另一個類時,它會自動獲得另一個類的所有屬性和方法,原有的類稱為父類,新類稱為子類,子類繼承了父類所有的屬性和方法,同時還可以定義自己的屬性和方法,
class Student():
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
def student_info_show(self):
print(str(self.name) + " is a(n) " + str(self.age) + " years old " + str(self.sex))
class MyStudent(Student):
def __init__(self, name, sex, age, grade):
super().__init__(name, sex, age)
self.grade = grade
my_stu = MyStudent('Xiaopeng', 'Boy', 10, 6)
my_stu.student_info_show()
print("Name: " + str(my_stu.name))
print("Sex: " + str(my_stu.sex))
print("Age: " + str(my_stu.age))
print("Grade: " + str(my_stu.grade))
上述代碼的運行結果如下所示:
Xiaopeng is a(n) 10 years old Boy
Name: Xiaopeng
Sex: Boy
Age: 10
Grade: 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262559.html
標籤:python
下一篇:Python人臉識別
