1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python类方法 静态方法和实例方法的使用

python类方法 静态方法和实例方法的使用

时间:2023-08-29 23:46:37

相关推荐

python类方法 静态方法和实例方法的使用

目录

1、python中类的方法类别

2、各个方法之间的功能差异

3、各个方法的调用格式

4、使用举例

1、python中类的方法类别

python中类的方法有三种,分别为:

类方法,通过装饰器@calssmethod进行修饰。静态方法,通过装饰器@staticmethod进行修饰。实例方法,属于方法类型的函数。

2、各个方法之间的功能差异

为什么要分为三种不同的方法呢?他们之间有什么区别和差异呢?首先这三种方法的可以获取类的属性和变量范围不同,具体区别如下:

类方法:不能获取构造函数定义的变量,可以获取类的属性。静态方法:不能获取构造函数定义的变量,也不可以获取类的属性。实例方法:既可以获取构造函数定义的变量,也可以获取类的属性值。

3、各个方法的调用格式

除了三种方法可以获取的类的属性存在差异,具体在方法本身被调用的方式上也有所差异,具体如下:

类方法:有两种调用方式,a.类名.类方法名 b.实例化调用静态方法:有两种调用方式,a.类名.静态方法名 b.实例化调用实例方法:见名知意,也许命名就是告诉大家,它只能通过实例化进行调用,事实也是。

4、使用举例

基于以上理解,举个例子:

class FunctionTest:fun = "test"def __init__(self):self.__name = "function"self.__age = 2@classmethoddef execute_class(cls):logging.info("this is class method!")@staticmethoddef execute_static(x):logging.info("this is static method!")logging.info(f"{x} is a num.")def execute_normal(self):logging.info("This is normal method!")if __name__ == '__main__':# 实例化调用FT = FunctionTest()# 只能通过实例化调用FT.execute_normal()# 实例化调用FT.execute_static(7)FT.execute_class()# 类.方法名 调用FunctionTest.execute_static(9)FunctionTest.execute_class()

执行结果如下:

-26-04 17:15:45:INFO:This is normal method!-26-04 17:15:45:INFO:this is static method!-26-04 17:15:45:INFO:7 is a num.-26-04 17:15:45:INFO:this is class method!-26-04 17:15:45:INFO:this is static method!-26-04 17:15:45:INFO:9 is a num.-26-04 17:15:45:INFO:this is class method!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。