全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器:把方法包装成属性
扫描二维码
随时随地手机看文章
摘要:
本文主要对@property 装饰器的基本定义、使用场景和使用方法进行了介绍,同时介绍了setter装饰器和deleter装饰器的应用场景和语法。
文档和代码获取:
本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail代码软件对代码进行可视化阅读便于读者理解。
正文
上一篇文章链接:
全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装
上面程序中,使用@property修饰了devstate()方法,这样就使得该方法变成了devstate属性的getter方法。
这里用如下语句直接通过方法名来访问方法:
s = SerialClass()print(s.devstate)
程序运行如下:
property装饰器主要应用在以下场景:
-
保护类的封装特性
-
让开发者可以使用“对象.属性”的方式操作操作类属性
@property 的语法格式如下:
@propertydef 方法名(self) 代码块
类似的要想实现修改devstate属性的值,还需要为属性添加setter方法,就需要用到setter装饰器
它的语法格式如下:
def 方法名(self, value): 代码块
除此之外,还可以使用 deleter 装饰器来删除指定属性,其语法格式为:
def 方法名(self): 代码块





