Python类封装--标准属性保护实例变量(拦截)

原创 阁主  2026-02-19 22:12:57  阅读 1848 次 评论 0 条
摘要:

属性封装是为了防止外部程序直接访问类的内部变量,其他的语言我们一般使用get和set方法,Python当然也是有这个思想的,方法都是差不多的,具体可以看正文。

说明

通常两个公开的属性(读、写),保护一个私有的变量。
@property负责读取,@属性名.setter负责写入
只写:属性名=property(None,写入方法名)

代码

"""
    封装 -- 标准属性
        作用:保护实例变量
"""


# 1. 创建实例变量
# 2. 提供两个公开的读写方法
# 3. 使用@property修饰读取方法
#    使用@属性名.setter修改写入方法

class Wife:
    def __init__(self, name="", age=0):
        self.name = name
        self.age = age

    @property  # 创建property对象,自动绑定下面方法(读取)
    def age(self):
        return self.__age

    @age.setter  # 自动绑定下面方法(写入)
    def age(self, value):
        if 20 <= value <= 50:
            self.__age = value
        else:
            raise Exception("我不要")


w01 = Wife("宁宁", 25)
w01.age = 27
print(w01.age)
print(w01.__dict__)

输出测试

27
{'name': '宁宁', '_Wife__age': 27}
本文地址:https://www.mainblog.cn/307.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
NEXT:已经是最新一篇了

评论已关闭!