类方法和静态方法 使用细节,使用场景和他们的区别

本文探讨了Python中的类方法和静态方法的使用细节、特点及区别。类方法使用@classmethod装饰器,参数为当前类,适用于对象创建前需要进行的特定操作。静态方法使用@staticmethod装饰器,无需参数,仅能访问类属性和方法,两者都无法访问对象属性。总结来说,类方法和静态方法的主要差异在于装饰器和参数,但都可在创建对象前调用,且只能访问类的属性和方法。
摘要由CSDN通过智能技术生成

类方法
特点:
1。定义需要依赖类装饰器@classmethod
2.类方法中的参数不是一个对象,而是当前类
print(cls) <class ‘main.Dog’>
3.在类方法中只可以使用类属性,不能访问self属性 之所以是这种情况 是因为类属性先于对象属性创建,这时候对象属性还没有创建
4.类方法不依赖对象,Dog.test()这样写也可以 但是Dog.run()不可以
5.类方法不可调用普通方法
6.类方法的用处 因为只能访问类属性和类方法,所以可以在对象创建之前,如果需要做一些功能或动作,就可以用类方法
静态方法 静态方法和类方法都依赖Person()的调用 不能用对象调用
静态方法:很类似类方法
1.需要装饰器@staticmethod
静态方法是无需传递参数的 cls,self都不能出现在静态方法中
他只能访问类的属性和方法,对象是无法访问的
加载时机:同类方法 只要类被创建,就会存储下
总结: 类方法 静态方法
不同:
1.装饰器不同
2.类方法是有参数的,静态方法没有参数

相同:
1、只能访问类的属性和方法,对象的是无法访问的 调用静态方法 : Person.static
2.都可以通过类名调用访问 Person.static()
3都可以在创建对象之前使用,因为是不依赖与对象

普通方法 与两者的区别:
不同:
    1.没有装饰器
    2.普通方法永远是要依赖对象,因为每个普通方法都有一个self
    3.只有创建了对象才可以调用普通方法,否则无法调用
// # 类方法
# 特点:
#     1。定义需要依赖类装饰器@classmethod
#     2.类方法中的参数不是一个对象,而是当前类
#       print(cls)      <class '__main__.Dog'>
#     3.在类方法中只可以使用类属性,不能访问self属性  之所以是这种情况 是因为类属性先于对象属性创建,这时候对象属性还没有创建
#     4.类方法不依赖对象,Dog.test()这样写也可以  但是Dog.run()不可以
#     5.类方法不可调用普通方法
#     6.类方法的用处 因为只能访问类属性和类方法,所以可以在对象创建之前,如果需要做一些功能或动作,就可以用类方法
class Dog:
    name='小黄狗'  #类属性
    def __init__(self,name):
        self.name=name


    def run(self):           #普通方法必须依赖self对象而存在 但类方法不需要对象就可以调用
        print('{}在院子里跑来跑去!'.format(self.name))

    def eat(self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值