【发布时间】:2021-10-23 13:32:56
【问题描述】:
我想更好地理解以下之间的区别:
- 属性
- 方法
- 财产
我创建了一个名为 Patient 的类,并且我已经标记了哪些方法和属性:
此代码中的哪个属性是属性,如果该属性是完全不同的东西并且我没有将它包含在我的代码中,那么使用我的示例如何包含一个属性?
还有什么是类的属性?
【问题讨论】:
-
属性是专门用
@property装饰器制作的。基本上它使该属性不可写(只读)并且您不需要调用它来访问它,虽然它被定义为一种方法,但它也必须return一些东西。例如,在您的情况下,您可以执行p1.patient_state = None,它将覆盖该方法并将其替换为None值的属性,如果该方法是使用@property装饰器创建的,则您无法做到这一点 -
@Matiiss:没有
@property也可以创建属性,使用装饰器比创建自己的描述符更容易。说“特制”意味着只有一种方法可以做到。 -
我删除了您帖子的一部分,因为这是一个单独的问题,帖子应该只关注一个问题。对于删除的部分,已经有this Q&A。
-
要记住的一点是,虽然“属性”在 Python 中具有特定的含义,但在 OOP 中更一般地说,它与属性或成员的含义相同