首页 文章详情

Day 16/100:装饰器

印象Python | 269 2021-04-18 19:27 0 0 0
UniSMS (合一短信)

上一节我们对类和面向对象做了简单的介绍,了解了面向对象的一些特征还有类的成员和方法,最后对类方法的访问限制也用实例做了演示。尚未看过的小伙伴可以参考一下:Day 16/100:类

今天我们来看一下类的继承和重写。在此之前沃尔玛你先来了解一下另外一个概念:
d6df8ca0915dc49d4051ea23b5d8c385.webp

装饰器)

4528bc297d4b4afedfaf452d07ddaa5c.webp


在Python中,可以通过@property(装饰器)将一个方法转为属性,从而实现用于计算的属性。这样一来就可以直接使用方法名来访问方法。可以使得代码更加简洁。

@property
def method(self):
    block


例如定义方法求矩形面积:

class Rect:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    #定义计算面积的方法使用@property将其转为属性
    @property
    def area(self):
        return self.width * self.height

#创建实例
rect = Rect(20,30)
print('面积为:', rect.area)
'''
面积为:600
'''






为属性添加保护机制




默认情况,创建类属性或者实例在类外是可以修改的,如果我们需要限制在类外不可修改,就要将其设为私有。那么就可以使用@property将其设置为只读。

class Ract:
    def __init__(self, wid, hig):
        self.__width = wid   #定义私有属性
        self.__height = hig

    @property
    def area(self):
        return self.__width * self.__height

ract = Ract(50,60)

#添加修改逻辑
ract.area = (55,66)
print(ract.area)

'''
AttributeError: can't set attribute
'''


回复下方 「关键词」,获取优质资源

c3ecaa21c8b5171e0e2534014d4dbd7d.webp


回复关键词 「linux」,即可获取 185 页 Linux 工具快速教程手册和154页的Linux笔记。


回复关键词 「Python进阶」,即可获取 106 页 Python 进阶文档 PDF


回复关键词 「Python面试题」,即可获取最新 100道 面试题 PDF


回复关键词 「python数据分析」,即可获取47页python数据分析与自然语言处理的 PDF


回复关键词 「python爬虫」,满满五份PPT爬虫教程和70多个案例


回复关键词 「Python最强基础学习文档」,即可获取 168 页 Python 最强基础学习文档 PDF,让你快速入门Python3c3912512df8f6bb93740df166f05cb6.webp

推荐我的微信号

f71ed7bf4de6074dc2c9f5fb93331b37.webp

来围观我的朋友圈,我的经验分享,技术更新,不定期送书,坑位有限,速速扫码添加!
备注:开发方向_昵称_城市,另送你10本Python电子书。

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter