面向对象进阶Day15

本文介绍了Python面向对象编程的一些高级特性,包括@property装饰器用于安全地访问和修改属性,__slots__特性限制对象可绑定的属性,静态方法和类方法的应用,以及类之间的is-a、has-a和use-a关系。此外,还详细讲解了继承和多态的概念,通过实例展示了如何利用这些特性实现代码复用。最后,提供了几个综合案例,如奥特曼打小怪兽、扑克游戏和工资结算系统的实现,帮助读者加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@property装饰器

之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效。我们之前的建议是将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,那么如果想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作。如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便,代码如下所示。

class Person(object):
​
    def __init__(self, name, age):
        self._name = name
        self._age = age
​
    # 访问器 - getter方法
    @property
    def name(self):
        return self._name
​
    # 访问器 - getter方法
    @property
    def age(self):
        return self._age
​
    # 修改器 - setter方法
    @age.setter
    def age(self, ag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值