Python入門:面向對象之方法簡介

方法:

即為類中的函數。

普通方法(實例方法):

至少一個參數self,並將實例化對象綁定到self由對象通過點運算符調用類不可直接調用,如確有需要需顯式將對象作為參數傳遞進去

<code>class Person: def func(self): # 自定義方法,self必選,意為實例本身 pass xiaoming = Person() xiaoming.func() # 實例對象使用點運算符調用方法 # Person.func() 不可直接使用類調用普通方法,TypeError: func() missing 1 required positional argument: 'self' Person.func(Person()) # 確需使用,可傳遞一個實例參數進去/<code>

類方法:

使用@classmethod語句修飾至少一個參數cls,並自動將類本身綁定到cls可直接訪問類屬性

<code>class Person: gender = 'male' @classmethod def func(cls): # 定義類方法 cls.gender = 'female' # 修改類屬性gender為female Person.func() # 直接用類調用類方法 print(Person.gender) /<code>

靜態方法:

使用@classmethod語句修飾不需要參數cls、self類、實例均可以調用

<code>class Person: @staticmethod def func(): # 定義靜態方法 print('static method running.') Person.func() # 類調用靜態方法 Person().func() # 實例調用靜態方法 /<code>

魔術方法

在Python中,所有以“__”雙下劃線包起來的方法,都統稱為“Magic Method”,中文稱魔術方法,例如類的初始化方法 __init__ 。

關於魔術方法,見作者另文:Python入門:面向對象之魔術方法。