从 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 类属性。
例如:
class Record:
def __init__(self):
self.description = ''
record = Record()
print(record.description)
在上述情况下,description是一个实例属性 - 即,它对于 Record 对象的实例来说是唯一的,而:
class Record:
description = ''
print(Record.description)
... description 在这种情况下是一个类属性,因此对于 Record 对象的任何/所有实例都是通用的