Python类——类属性、类方法和静态方法

一.类属性

  • 类属性,就是所有的对象所共有的属性,在对其修改够,所有对象的类属性放生了改变
  • 实例属性,每个对象所独有的,对象被创建后,添加修改实例属性,对其他对象不产生影响
    -读取方式:
    • 对象.类属性名
    • 类名.类属性名
  • 修改方式:
    • 类名.类属性名 = 值
    class Chinese(object):
        color = 'yellow'
    
    c1 = Chinese()
    c2 = Chinese()
    print(c1.color)         # yellow
    print(c2.color)         # yellow
    print(Chinese.color)    # yellow
    
    Chinese.color = 'orange'
    print(c1.color)         # orange
    print(c2.color)         # orange
    print(Chinese.color)    # orange
    

二.类方法

  • 如果在方法内部不需要使用实例属性和实例方法,但是需要使用类属性或者类方法我们就定义类方法

  • 定义方式:需要在方法上方写@classmethod

  • 在类方法中会自动传入cls,这个参数代表的是当前类本身

    class Apple:
        apple_num = 10
    
        def eat_apple(self):
            Apple.apple_num -= 1
    
        @classmethod
        def print_num(cls):
            print(cls.apple_num)
    
    a = Apple()
    Apple.print_num()   # 10
    a.eat_apple()      
    a.eat_apple()
    Apple.print_num()   # 8
    

三.静态方法

  • 既不依赖于实例,也不依赖于类,这种方法我们就可以定义为静态方法

    class Apple:
        @staticmethod
        def func():
            print("我是一个静态方法")
    
    A = Apple()
    A.func()        # 我是一个静态方法
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值