Python类学习(四)——property

本文介绍了Python中使用getter、setter访问器方法的原因和方式,详细讲解了如何通过property函数定义属性,并探讨了@property装饰器的应用,以实现属性的封装和控制逻辑。
摘要由CSDN通过智能技术生成

目录

1. getter、setter等访问器方法

1)为什么使用getter、setter访问器方法

2)怎么写setter、getter方法

2. 使用property函数定义属性

3. 使用@property装饰器修饰方法,使其成为属性


1. getter、setter等访问器方法

1)为什么使用getter、setter访问器方法

在学习什么是setter、getter等访问器方法时,我们先来看一段代码:

# 定义一个矩形类
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

# 创建一个对象
my_rectangle = Rectangle(10, 5)
print(my_rectangle.width, my_rectangle.height)      # 10 5
my_rectangle.width = 15
print(my_rectangle.width, my_rectangle.height)      # 15 5

对于定义的Rectangle类,我们创建对象时都会调用__init__函数,此函数为对象定义了两个实例变量;

对象可以随意读出和修改这两个实例变量,这不符合面向对象编程的三大特征中的“封装”特征(将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法实现对内部信息的操作和访问)。

但是,由于Python没有提供类似于其他语言的private等修饰符,Python并不能将实例变量真正隐藏起来,所以尽管还是要通过定义方法去访问实例变量,但外部程序依然可以直接访问实例变量;

所以,这就是我们使用setter、getter访问方法的主要原因。除此之外,我们可以在这些方法中加入控制逻辑,限制对属性的不合理访问。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值