c# - 在 python 中使用属性,如示例 C#

标签 c# python properties

我目前使用 Python 有一段时间了,我开始质疑自己是否应该像在 C# 中一样经常在 Python 中使用“属性”。 在 C# 中,我主要为我的大部分类创建属性。

似乎属性在 python 中并不流行,我错了吗? 如何在 Python 中使用属性?

问候,

最佳答案

如果您所做的只是设置和查询成员变量,那么通常不需要属性。因为Python没有封装的概念,所有的成员变量都是public的,往往不需要封装访问。但是,属性是可能的,完全合法且流行:

class C(object):
    def __init__(self):
        self._x = 0

    @property
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        if value <= 0:
            raise ValueError("Value must be positive")
        self._x = value

o = C()
print o.x
o.x = 5
print o.x
o.x = -2

关于c# - 在 python 中使用属性,如示例 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3324920/

相关文章:

c# - Azure AD 签名 key 滚动更新

python - 使用 python3 和 c/c++ 嵌入套接字

python - 如何列出所有类属性

objective-c - 在 ARC 下,当通过属性分配给 ivar 时, block 是否会自动复制?

c# - Orleans grain 代码中的响应式(Reactive)扩展

c# - 为什么我的 MVC ViewModel 成员被我的 ActionResult 参数覆盖了?

c# - 使用 sql linq 查询的结果导致数据库被查询两次

python - 修复 curve_fit 中的拟合参数

python - 从 pandas 大数据集中获取犯罪 'count'

c# property setter body 没有声明类级属性变量