python类方法,静态方法,实例方法

python的类方法(classmethod),静态方法(staticmethod),实例方法常见于日常的使用。
类方法:classmethod,以@classmethod装蚀器进行修饰,必须有一个参数,惯例下是“cls”,也可以是其他名称。通过它可以调用当前类的属性和方法。类方法一般实例和类都可以调用。在python中声明一个类方法语法如下:

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

静态方法:staticmethod,默认不包括任何参数,以@staticmethod装蚀器进行修饰,默认不包括参数。**静态方法一般实例和类都可以调用。**在python中声明一个静态方法语法如下:

class C:
    @staticmethod
    def f(arg1, arg2, ...): ...

实例方法:在python类里,默认的方法都是实例方法,函数的第一个参数必须是self,用于指向实例自身。一般只能用实例对象调用。**在python3.8中,存在问题。 **
下面利用代码进行说明。假设又一个类A,如下:

class A:
    
    @classmethod
    def say_hello(a):
        print("hello world")

    @staticmethod
    def say_hi():
        print("hi world")

    def say_haha(self):
        print("haha world")

if __name__ == "__main__":
    # 可以直接用类名调用
    A.say_hello()
    # 可以通过类名调用
    A.say_hi()
    # 调用实例方法
    # A.say_haha()  无法调用
    # A.say_haha("dd")    这种情况下会把self当作参数,则类可以调用
    A.say_haha(1)
    # 定义实例A
    a = A()
    # 调用实例方法
    a.say_haha()
    # 调用静态方法
    a.say_hi()
    # 调用类方法
    a.say_hello()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值