为类属性创建 python 自定义 setter 的最简单方法,与 C# 相比

问题描述 投票:0回答:1

从 C# 世界进入 Python。在 C# 中,我可以使用

get
set
在为属性设置值时更新其他对象属性,如下所示:

private int _age;
private string _description;

public int Age
{
    set
    {
        _age = value;
        _description = (_age < 1500) ? "new": "old";
    }
}

在Python中我有一个像这样的类定义:

Class Record(object):
    age = 0
    description = ""
    <...a bunch of other properties...>

当我执行

rec = Record()
并尝试使用该对象时,当我设置
description
时,如何触发设置
rec
中的
rec.age = 1500
属性,而不需要编写像
get_age(self):
set_age(self):
这样的自定义函数,a-la C#

提前谢谢你

python c# oop setter
1个回答
-2
投票

您可以使用点表示法访问 Python 类属性。

例如:

class Record:
  def __init__(self):
    self.description = ''

record = Record()
print(record.description)

在上述情况下,description是一个实例属性 - 即,它对于 Record 对象的实例来说是唯一的,而:

class Record:
  description = ''

print(Record.description)

... description 在这种情况下是一个类属性,因此对于 Record 对象的任何/所有实例都是通用的

© www.soinside.com 2019 - 2024. All rights reserved.