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

方法:

即為類中的函數。

普通方法(實例方法):

  1. 至少一個參數self,並將實例化對象綁定到self
  2. 由對象通過點運算符調用
  3. 類不可直接調用,如確有需要需顯式將對象作為參數傳遞進去
<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>

類方法:

  1. 使用@classmethod語句修飾
  2. 至少一個參數cls,並自動將類本身綁定到cls
  3. 可直接訪問類屬性
<code>class Person:
    gender = 'male'

    @classmethod
    def func(cls):  # 定義類方法
        cls.gender = 'female'  # 修改類屬性gender為female

Person.func()  # 直接用類調用類方法
print(Person.gender)
/<code>

靜態方法:

  1. 使用@classmethod語句修飾
  2. 不需要參數cls、self
  3. 類、實例均可以調用
<code>class Person:
    @staticmethod
    def func():  # 定義靜態方法
        print('static method running.')

Person.func()  # 類調用靜態方法
Person().func()  # 實例調用靜態方法
/<code>

魔術方法

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

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


分享到:


相關文章: