相关疑难解决方法(0)

关于如何在python中使用属性功能的真实示例?

我对如何@property在Python中使用感兴趣.我已经阅读了python文档和那里的例子,在我看来,它只是一个玩具代码:

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

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
Run Code Online (Sandbox Code Playgroud)

我不知道从包装_x填充属性装饰器可以获得什么好处.为什么不实施为:

class C(object):
    def __init__(self):
        self.x = None
Run Code Online (Sandbox Code Playgroud)

我认为,属性功能在某些情况下可能会有用.但当?有人可以给我一些现实世界的例子吗?

谢谢.

python oop properties python-decorators

133
推荐指数
9
解决办法
7万
查看次数

验证类实例属性的正确方法

有一个像这样的简单Python类:

class Spam(object):
    __init__(self, description, value):
        self.description = description
        self.value = value
Run Code Online (Sandbox Code Playgroud)

我想检查以下约束:

  • "描述不能为空"
  • "价值必须大于零"

我应该:
1.在创建垃圾邮件对象之前验证数据?
2.检查__init__方法数据?
3. is_valid在垃圾邮件类上创建一个方法并使用spam.isValid()调用它?
4. is_valid在Spam类上创建一个静态方法,并使用Spam.isValid(描述,值)调用它?
5.检查制定者声明的数据?
6.等

你能推荐一款设计精良的/ Pythonic /非冗长(具有多种属性的课程)/优雅的方法吗?

python

72
推荐指数
4
解决办法
3万
查看次数

标签 统计

python ×2

oop ×1

properties ×1

python-decorators ×1