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

目录

1、python中类的方法类别

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

3、各个方法的调用格式

4、使用举例


1、python中类的方法类别

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

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

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

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

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

3、各个方法的调用格式

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

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

4、使用举例

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

class FunctionTest:
    fun = "test"

    def __init__(self):
        self.__name = "function"
        self.__age = 2

    @classmethod
    def execute_class(cls):
        logging.info("this is class method!")

    @staticmethod
    def 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()

执行结果如下:

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小米,罗冰

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值