python面向对象 - 21 @classmethod与@property修饰器

本文探讨了Python面向对象编程中的@classmethod和@property修饰器。首先介绍了@classmethod修饰器,如何通过类来调用类方法,并举例创建了一个人类。接着详细解释了@property修饰器的作用,用于在赋值时进行特殊处理或判断,避免直接修改属性,并通过创建Cat类和Math类的实际例子加以说明。

1.@classmethod 修饰器

例如:创建一个人类

class Person():
    # =========类的属性和方法==========
    # num就是类的属性,要通过类名去使用
    num = 0    #类属性的默认值

    @classmethod   #修饰器, 修饰器下面放类方法
    def show_num(cls):
    # show_num就是一个类方法:类方法就需要使用类去调用。
    # cls参数指的是当前类。调用的时候不需要给他传参,类似于self

        print('类方法:',cls.num)

    # ========对象的属性和方法=========
    # self -> 当前对象
    def __init__(self, name, age):
        # name,age都是对象的属性,就要通过对象去使用
        self.name = name
        self.age = age

    # run方法是对象方法,通过对象去调用
    def run(self):
        print('%s跑起来乌龟都追不上他' % self.name)

a. 通过对象使用对象属性和方法

p1 = Person('hanbo',23)
print(p1.name)
p1.run()   #对象调用方法

b. 通过类去使用类的属性:类名.属性名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值