1. 程式人生 > >5.10 對比 self,cls參數

5.10 對比 self,cls參數

對象 c++ 表示 his ++ 這樣的 pre 需要 int

python類裏會出現這三個單詞,self和cls都可以用別的單詞代替,類的方法有三種,

一是通過def定義的 普通的一般的,需要至少傳遞一個參數,一般用self,這樣的方法必須通過一個類的實例去訪問,類似於c++中通過對象去訪問;

二是在def前面加上@classmethod,這種類方法的一個特點就是可以通過類名去調用,但是也必須傳遞一個參數,一般用cls表示class,表示可以通過類直接調用;

三是在def前面加上@staticmethod,這種類方法是靜態的類方法,類似於c++的靜態函數,他的一個特點是參數可以為空,同樣支持類名和對象兩種調用方式;

class A:
    member 
= "this is a test." def __init__(self): pass @classmethod def Print1(cls): print("print 1: ", cls.member) def Print2(self): print("print 2: ", self.member) @classmethod def Print3(paraTest): print("print 3: ", paraTest.member) @staticmethod
def print4(): print("hello") a = A() A.Print1() #結果是 print 1: this is a test. a.Print1() #結果是 print 1: this is a test. # A.Print2() a.Print2() #結果是 print 2: this is a test. A.Print3() #結果是 print 3: this is a test. a.Print3() #結果是 print 3: this is a test. A.print4() #結果是 hello
a.print4() #結果是 hello
 

5.10 對比 self,cls參數