您好,登錄后才能下訂單哦!
面向對象編程(Object Oriented Programming,OOP),是使用對象(Objects)作為核心的編程方式。
進而就可以把對象(Objects)的數據和運算過程封裝(Encapsulate)在內部,而外部僅能根據事先設計好的界面(Interface)與之溝通。
對象的構成:
屬性 —— 用自然語言描述,通常是名詞(Nouns)
方法 —— 用自然語言描述,通常是動詞(Verbs)
舉個例子:創建一個對象Teacher(老師)
Teacher的屬性有name(姓名)、age(年齡)等,Teacher 的方法有teacher(上課)、study(學習)
EnglishTeacher(英語老師)也屬于Teacher,所以EnglishTeacher可以繼承Teacher并且使用Teacher的屬性和方法
MathTeacher(數學老師)的teach方法不同于EnglishTeacher,所以可以對方法進行重寫。
類的私有屬性
private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.private_attrs。
類的方法
在類的內部,使用 def關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self,且為第一個參數,self 代表的是類的實例。
self 的名字并不是規定死的,也可以使用 this,但是最好還是按照約定用 self。
類的私有方法
private_method:兩個下劃線開頭,聲明該方法為私有方法,只能在類的內部調用 ,不能在類的外部調用。在類內部調用self.private_methods。
Python 類定義
Class 使用 class 關鍵字進行定義。class name使用駝峰標識,例如MyClass:
# 定義類
class Teacher:
def __init__(self, name, age):
self.name = name
self.age = age
def teach(self):
print("{0} teach".format(self.name))
def study(self):
print("{0} study".format(self.name))
# 創建類的實例
my_teacher = Teacher("zhangsan", 18)
my_teacher.teach()
# 輸出
zhangsan teach
注:
self 用來指代將來用這個 Class 創建的 Instance實例。
init() 函數是系統創建實例后被初始化的函數。這個函數名稱是強制指定的,初始化函數必須使用這個名稱;注意 init 兩端各有兩個下劃線 _。
self.name,self.age 各接收了一個參數,表示用戶屬性
Python 類繼承
繼承,顧名思義,新的事物擁有舊事物的特征,并且可以傳遞下去。
在Python中,繼承的范圍更廣,比如定義一個實例Teacher,則新的實例EnglishTeacher是老師,所以可以繼承Teacher。老師有姓名、年齡、性別等屬性,有上課、學習等方法,則英語老師繼承老師的所有屬性和方法。
再比如,定義一個實例Mother母親,定義一個實例Father父親,則新的實例Kids孩子不但可以繼承Mother還可以繼承Father。
以上兩個例子分別是單繼承和多繼承。
Python可以實現單繼承和多繼承
單繼承
# # EnglishTeacher繼承Teacher類
class EnglishTeacher(Teacher):
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
def teach(self):
print("{0} teach".format(self.name))
# 創建類的實例
teacher = EnglishTeacher("xiaomeng", 10)
teacher.teach()
# 輸出
xiaomeng teach
多繼承
# 定義父親類
class Father:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("{0} is father".format(self.name))
# 定義母親類
class Mother:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("{0} is mother".format(self.name))
# Kid繼承Father和Mother類
class Kid(Father, Mother):
def speak(self):
print("{0} is kid".format(self.name))
# 創建類的實例
kid = Kid("student", 6)
kid.speak()
# 輸出
baby is kid
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。