1.類里函數不帶self,這是我們調用類里的函數直接用類名.函數名()
class shop(object): def scan_goods(): #括號內不帶self print('瀏覽商品') def choose_goods(): print('選擇商品') def delete_goods(): print('刪除商品') a=getattr(shop,'scan_goods')() a=getattr(shop,'delete_goods')() lis=[('瀏覽商品','scan_goods'),('選擇商品','choose_goods'),('刪除商品','delete_goods')] for index,opt in enumerate(lis,1): print(index,opt[0]) a=getattr(shop,opt[1])() #類名不加()直接加函數名調用 結果: 瀏覽商品 刪除商品 1 瀏覽商品 瀏覽商品 2 選擇商品 選擇商品 3 刪除商品 刪除商品
2.帶有self的類調用函數,調用類里的函數直接用類名(args1,args2).函數名()
class Animal(object): def __init__(self,name,kind): self.name = name self.kind = kind def eat(self,food): #帶有參數的self print('%s eat %s'%(self.name,food)) def drink(self): print('%s drink water'%(self.name)) def catch(self): print('%s catch mouse'%(self.name)) Animal('貓','美短').catch() #調用Animal(),這里需要帶括號傳參數
結果: 貓 catch mouse
3.@staticmethod方法:
class C(object): @staticmethod def f(): print('runoob'); C.f(); # 靜態方法無需實例化 cobj = C() cobj.f() # 也可以實例化后調用