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() # 也可以实例化后调用
原文:https://www.cnblogs.com/Zhao159461/p/10638257.html