经常在使用python时都会用到类,但是类中的方法有几种类型有些人可能真不知道。其实python类中的方法有3种类型:
1、实例方法
2、静态方法
3、类方法
1 class DoExcel(): 2 3 def __init__(self,filename,sheetname): 4 self.filename = filename 5 self.sheetname = sheetname 6 7 #实例方法,只能通过实例来调用,第一个参数必须是self,表示实例本身;也可以传其他参数 8 def get_data(self): 9 print(self.name) #可以调用类方法中的变量 10 heads = self.get_head() 11 pass 12 13 #静态方法,没有必须传的参数;也可以传其他参数 14 @staticmethod 15 def add_num(): 16 return 1+2 17 18 #类方法,第一个参数必须是cls,表示class/类本身;也可以传其他参数 19 @classmethod 20 def mod_num(cls): 21 cls.name = 'test_methods' 22 return 123%7
调用的不同:
1、实例方法仅能通过实例调用;
2、静态方法和类方法可以用实例调用,也可以直接通过类名调用;
1 datas = DoExcel('test_data.xlsx','datas') #初始化一个实例,必须要传初始化函数的参数 2 # 实例方法的调用 通过实例调用 3 datas.get_data() 4 5 # 静态方法的调用 方法一:通过实例调用 6 datas.add_num() 7 # 静态方法的调用 方法二:通过类名调用 8 DoExcel.add_num() 9 10 # 类方法的调用 方法一:通过实例调用 11 datas.mod_num() 12 # 类方法的调用 方法二:通过类名调用 13 DoExcel.mod_num()
静态方法和类方法的区别:
1、类方法第一个参数必须传入cls,表示类本身;
2、类方法里用cls定义的变量等,可以在其他的实例方法中用self进行使用;静态方法无该功能;