经常在使用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进行使用;静态方法无该功能;