You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现类似C#自定义属性setter,设置age自动更新description?

Python实现C#风格的属性访问器(自动同步属性)

在Python中,可以通过@property装饰器实现类似C#的get/set访问器效果,无需手动编写get_age、set_age这类函数。以下是适配你需求的实现方式:

改造后的Record类

class Record(object):
    def __init__(self):
        # 用单下划线标记内部变量(Python约定的私有变量写法)
        self._age = 0
        self.description = ""
        # 其他属性的初始化代码...

    @property
    def age(self):
        # 对应C#的get访问器
        return self._age

    @age.setter
    def age(self, value):
        # 对应C#的set访问器,赋值时自动同步description
        self._age = value
        self.description = "new" if self._age < 1500 else "old"

使用示例

# 创建实例
record = Record()

# 设置age属性,自动更新description
record.age = 1200
print(record.description)  # 输出: new

record.age = 1600
print(record.description)  # 输出: old

关键说明

  • Python用@property定义属性的getter方法,用@属性名.setter定义setter方法,语法上可以直接像访问普通属性一样操作age
  • _age是实例内部变量,遵循Python命名约定(单下划线表示仅供内部使用,类似C#的private字段)
  • 所有逻辑都封装在setter方法中,设置age时会自动执行同步description的逻辑,和C#的属性行为完全一致

内容的提问来源于stack exchange,提问作者isswf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 06:03:24