python中的類(3)-類方法/靜態方法


python中的類方法與靜態方法

 

 

  面相對象程序設計中,類方法和靜態方法是經常用到的兩個術語。

 

  邏輯上講:類方法是只能由類名調用;靜態方法可以由類名或對象名進行調用。

 

 

 

類方法:

  在python中.類方法 @classmethod 是一個函數修飾符,它表示接下來的是一個類方法,而對於平常我們見到的則叫做實例方法。

類方法的第一個參數cls,而實例方法的第一個參數是self,表示該類的一個實例。

 

class Test():
    def __init__(self,name):
        self.a = name
    @classmethod #類方法的裝飾器,用於修飾這個方法
    def func(cls):#cls 代表的是class

        print('這是一個類方法')

if __name__ == '__main__':

    Test.func() #類調用
    a = Test("小王")
    a.func() #類的實例進行調用

 

 

 

 

注意 :a, 類方法不僅可以通過實例化對象調用還可以通過類名稱直接調用

 

      b, 不能調用構造函數(實例方法)中的屬性變量

 

      c,可以調用類變量

 

靜態方法:

  靜態方法是類中的函數,不需要實例。靜態方法主要是用來存放邏輯性的代碼,主要是一些邏輯屬於類,但是和類本身沒有交互,

在靜態方法中,不會涉及到類中的方法和屬性的操作。

 

class Test():
    def __init__(self,name):
        self.a = name

    @staticmethod #裝飾器,表示他是一個靜態方法
    def func():
        print("這是一個靜態方法")


if __name__ == '__main__':

    Test.func() #類調用
    a = Test("小王")
    a.func() #類的實例進行調用

注意:

      a,靜態方法中沒有默認的形

       b,靜態方法需要通過裝飾@staticmethod修飾
       c, 靜態方法不僅可以通過實例化對象調用還可以通過類名稱直接調用
       d,不能調用構造函數(實例方法)中的屬性變量
       e, 不可以調用類變量

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM