python复习功课
一、类方法(实例方法、类方法、静态方法)
使用方式:
1.实例方法是必须实例化可访问构建方法中的实例属性,也可通过类名去使用类属性,常用是实例化类给到一个类对象,用类对象.方法名调用
2.类方法只能访问类属性,不能访问实列属性,调用可使用实例名.方法名调用,也可用类名.方法名调用
3.静态方法是无需关心类本身,可使用类属性,但不能使用实例属性,直接采用类名.方法名调用
区别:
三种方法中实例方法权限最高,可使用实例属性和类属性。其他两种是不能使用实例属性的,静态方法是将类转换为函数使用的一种特殊方法
使用场景:
实例方法:当不想让其他模块访问我的数据的时候,采用实例化方法,因为实例化的数据是动态传参的,保证安全。
类方法:当类属性是固定不变的,并且其他模块可以使用我的方法时候,可采用类方法,数据和方法共享。
静态方法:更为宽松的使用方式,使用对象调用和类名都可以调用,可以使用类属性,直接传参使用,当用对象调用静态方法时候无需关心构建方法。直接像调用函数一样使用
案例:
1 class foo(): 2 num = 2 3 def __init__(self,num): 4 self.num= num 5 6 def fun(self): 7 print('---->实例属性:{}'.format(self.num)) 8 9 @classmethod 10 def fun1(cls): 11 print('---->类属性:{},或采用类名.属性调用(foo.num):{}'.format(cls.num,foo.num)) 12 @staticmethod 13 def fun2(x,y): 14 print('---->静态方法直接调用,无需传入cls和self','计算得出:{}'.format(x+y)) 15 print('---->直接调用类属性:{}'.format(foo.num)) 16 17 18 19 if __name__ == '__main__': 20 #实例化类 21 c = foo(4) 22 #对象调用方法 23 c.fun() 24 #类方法调用 25 foo.fun1() 26 #静态方法调用 27 foo.fun2(10,20) 28 #对象调用静态方法 29 c.fun2(100,200)