我对如何@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类:
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 /非冗长(具有多种属性的课程)/优雅的方法吗?