1、pthon中类包含的方法

1、区分

Python类包含三种方法:实例方法静态方法类方法。参考了该教程

实例方法:要想调用实例方法,必须要实例化类,然后才可以调用。也就是说,调用实例化方法需要类的实例(对象)。

静态方法:静态方法在调用时不需要类的实例(静态方法不需要self参数),定义静态方法需要@staticmethod装饰器(decorator)。当这个类中所有对象都具有该方法时,常用静态方法。

类方法:类方法的调用方式与静态方法一样,但是类方法却与实例方法的定义相同,都需要类似于self的参数(类方法中常用cls)。只不过这个self参数的含义不同。对于实例方法来说,这个self参数就代表当前类的实例,可以通过self访问对象中的方法和属性。而类方法的self参数表示类的元数据,也就是类本身,不能通过self参数访问对象中的方法和属性,只能通过这个self参数访问类的静态方法和静态属性。

2、代码实例

class Stu:
    school = '遂平一中'   # 类属性
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def play_basketball(self):
        print("{name}正在打篮球".format(name=self.name))

    # 类方法
    @classmethod
    def sport(cls):
        print("{school}的同学都喜欢篮球".format(school=cls.school))

    # 静态方法
    @staticmethod
    def clean():
        print("打扫教室卫生")

在这里插入图片描述
在这里插入图片描述
注意:区分类属性,实例属性,类方法和实例方法的修改和添加。通过实例访问属性时,类会优先判断这个实例中包括不包括这个属性,如果实例属性中有这个属性,则优先返回实例属性对应的值,如果不包括,就接着找类属性中是否包含这个属性,如果实例属性中没有而类属性中有,则会返回类属性。
总结:
在这里插入图片描述

设计理念:在面向对象的设计理念中,方法必定属于某个类,如果这个方法不属于某个类,那么它就是函数了,就回归到了面向过程编程。方法属于某个类,但这个方法可能不会访问实例和类的任何属性或其他方法,对于这种方法,我们就应该把它设计成静态方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

steelDK

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

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

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

打赏作者

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

抵扣说明:

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

余额充值