天天看點

一文搞懂 Python 中的類和對象

作者:資訊科技雲課堂
一文搞懂 Python 中的類和對象

Python 是一種面向對象的程式設計語言。這意味着幾乎所有代碼都可以使用稱為“類”的特殊結構實作。

一文搞懂 Python 中的類和對象

什麼是類和對象

類:使用者定義的資料結構,是用于建立對象的模闆。使用類,您可以根據需要建立任意數量的對象。

對象:類的執行個體,是屬性和方法的集合。

方法:類中定義的函數。

例如,我們設計一個類 Teacher,具有“姓名”、“年齡”等屬性,有“工作”等行為。根據類,建立多個對象,具體到某位老師。

類:Teacher
屬性:姓名、年齡
行為:工作
對象 1 對象 2 ……
姓名:張老師 姓名:李老師 ……
年齡:30 年齡:36 ……
工作:國文 工作:數學 ……

在 Python 中建立類

在 Python 中,類是使用關鍵字 class 定義。

「文法:」

class class_name:
    <statement 1>
    <statement 2>
    .
    .
    <statement N>           

class_name:類的名稱。

statements:屬性和方法

「示例:」

在此示例中,我們将建立一個具有姓名、年齡和工作的 Teacher 類。

class Teacher:
    def __init__(self, name, age, profession):
        self.name = name
        self.age = age
        self.profession = profession

    def show(self):
        print('姓名:', self.name, '年齡:', self.age)

    def work(self):
        print(self.name, '從事', self.profession, '學科教學工作。')           

在 Python 中建立對象

對象是使用類名建立的。當我們建立類的對象時,它被稱為執行個體化。該對象也稱為類的執行個體。

構造函數是用于建立和初始化類對象的特殊方法。此方法在類中定義。

「文法:」

<object-name> = <class-name>(<arguments>)             

下面是建立 Teacher 類及對象的完整代碼。

class Teacher:
    def __init__(self, name, age, profession):
        self.name = name
        self.age = age
        self.profession = profession

    def show(self):
        print('姓名:', self.name, '年齡:', self.age)

    def work(self):
        print(self.name, '從事', self.profession, '學科教學工作。')

#建立對象        
li = Teacher('李老師', '30', '國文')

#調用
li.show()
li.work()           

「輸出:」

姓名: 李老師 年齡: 30

李老師 從事 國文 學科教學工作。

類中的變量和方法

類變量是在類内部聲明的變量,類的所有執行個體(對象)共享類變量,值不會因對象而異。通過對象可以通路或修改類變量。

類方法用于通路或修改對象狀态。

class Teacher:
    
    #變量
    School = '北京大學'    
    def __init__(self, name, age, profession):
        self.name = name
        self.age = age
        self.profession = profession

    #方法
    def show(self):
        print('姓名:', self.name, '年齡:', self.age)

    def work(self):
        print(self.name, '從事', self.profession, '學科教學工作。')
        
    def change_profession(self, new_profession):
        self.profession = new_profession   
    
#建立對象        
li = Teacher('李老師', '30', '國文')

#調用
li.show()
li.work()
print('學校:', Teacher.School)
li.change_profession('數學')
li.work()           

「輸出:」

姓名: 李老師 年齡: 30

李老師 從事 國文 學科教學工作。

學校: 北京大學

李老師 從事 數學 學科教學工作。

文章創作不易,如果您喜歡這篇文章,請關注、點贊并分享給朋友。如有意見和建議,請在評論中回報!