如何在python语言中定于对象方法、类方法和静态方法

简单来说,用@classmethod 修饰的方法称为类方法,对于类方法,第一个参数必须为类对象,大多数人用cls作为第一个参数的名称。@staticmethod 修饰的方法是静态方法。

在这里插入图片描述
​如何在类中怎么选用哪种方法:

如果实现类中的函数的功能需要使用对象的属性,那么这个函数就要声明程对象方法

实现函数的功能不需要对象的属性的前提下,如果需要类的字段,就声明成类方法

若既不需要对象属性,又不需要类的字段,就声明成静态方法。

# 定义一个类 Pig
class Pig:
    # 定义一个静态方法
    def walk(self):
        print('散步')  #定义一个walk方法,让类具有”散步“的能力
    # 定义类方法sleep(使用@classmethod)
    @classmethod
    def sleep(cls):
        print('地方',cls)
# 使用@staticmethod,定义静态方法eat
    @staticmethod
    def eat(param):
        print('吃饭',param)
Pig.walk('jack') #利用类名,调用静态方法
Pig.sleep() # 利用类名,调用类方法sleep(), Pig.sleep()
Pig.eat('Tom') # 再使用类名调用静态方法eat,传入参数Tom
# 再使用实例化对象方法,调用walk()、sleep()和eat()方法
p = Pig()  # 调用类的方法,必须先实例化,写出一个对象p
p.sleep() #执行睡觉命令,cls不用提供
p.walk()  #执行散步命令,self不用提供
p.eat('b')

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今晚务必早点睡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值