1 # coding=utf-8 2 3 class ClassA (object): 4 string1 = "這是一個字符串。" 5 6 def instancefunc(self): 7 print ('這是一個實例方法。') 8 print ('selef的值為:', self) 9 10 @classmethod 11 def classfunc(cls): 12 print ('這是一個類方法。') 13 print ('cls的值為:',cls) 14 15 @staticmethod 16 def staticfun(): 17 print ('這是一個靜態方法。') 18 19 20 test = ClassA () # 初始化一個ClasssA的對象,test是類ClassA的實例對象 21 test.instancefunc () # 對象調用實例方法 22 23 test.staticfun () # 對象調用靜態方法 24 25 test.classfunc () # 對象調用類方法 26 27 print (test.string1) # 對象調用類變量 28 29 ClassA.instancefunc (test) # 類調用實例方法,需要帶參數,這里的test是一個對象參數 30 ClassA.instancefunc (ClassA) # 類調用實例方法,需要帶參數,這里的ClassA是一個類參數 31 ClassA.staticfun () # 類調用靜態方法 32 ClassA.classfunc () # 類調用類方法
1 # coding=utf-8 2 3 class ClassA (object): 4 string1 = "這是一個字符串。" 5 6 def instancefunc(self): 7 print ('這是一個實例方法。') 8 print ('selef的值為:', self) 9 10 @classmethod 11 def classfunc(cls): 12 print ('這是一個類方法。') 13 print ('cls的值為:',cls) 14 15 @staticmethod 16 def staticfun(): 17 print ('這是一個靜態方法。') 18 19 20 test = ClassA () # 初始化一個ClasssA的對象,test是類ClassA的實例對象 21 test.instancefunc () # 對象調用實例方法 22 23 test.staticfun () # 對象調用靜態方法 24 25 test.classfunc () # 對象調用類方法 26 27 print (test.string1) # 對象調用類變量 28 29 ClassA.instancefunc (test) # 類調用實例方法,需要帶參數,這里的test是一個對象參數 30 ClassA.instancefunc (ClassA) # 類調用實例方法,需要帶參數,這里的ClassA是一個類參數 31 ClassA.staticfun () # 類調用靜態方法 32 ClassA.classfunc () # 類調用類方法
備注:
主要有以下幾點內容
1. 類的定義,class開頭的就表示這是一個類,小括號里面的,表示這個類的父類,涉及到繼承,默認object是所有類的父類。
python中定義類,小括號內主要有三種:1. 具體一個父類,2. object 3. 空白
2. 函數或方法的定義, def開頭就表示定義一個函數,方法包括,實例方法,類方法,靜態方法,注意看類方法和靜態方法定義的時候上面有一個@標記。
3. 對象調用方法和類調用方法的使用。
以下用百度搜索舉例,模仿上面用類調用實例的方法來寫這個腳本,注意這里self指的是當前BaiduSearch這個類本身: