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)

 

posted @ 2023-01-18 10:34  伟仔技术博客  阅读(26)  评论(0编辑  收藏  举报