如何在Python中实现Required属性
发布时间:2020-12-20 12:18:30 所属栏目:Python 来源:网络整理
导读:如果我有一个如下所示的类(只有更多的属性),在调用特定方法之前是否有清晰的方法来记录哪些字段是必需的? class Example(): def __init__(self): pass @property """Have to use property methods to have docstrings...""" def prop1(self): return self._
如果我有一个如下所示的类(只有更多的属性),在调用特定方法之前是否有清晰的方法来记录哪些字段是必需的?
class Example(): def __init__(self): pass @property """Have to use property methods to have docstrings...""" def prop1(self): return self._prop1 @prop1.setter def task(self,value): # validation logic.. self._prop1 = value def method(self): # check all required properties have been added 我可以手工编写所有必需的属性数组并在方法中循环它们,但我想知道是否有更简洁的方法,例如通过实现@requiredProperty描述符. 该类用于生成Web API的POST请求.该请求有25个参数,其中一些是必需的,一些是可选的. 而不是调用请求的方法必须循环遍历数组,例如: required_props = ['prop1','prop2',....] 我希望在Python中有一种方法可以为属性添加一个必需的装饰器,所以我不必手动跟踪.例如. @property,@required def prop1(self): return self._prop1 解决方法
这应该与任何OO语言的工作方式相同:必须在构建期间设置必需的属性.调用对象方法绝不能让对象处于“坏”状态,因此可以在任何构造对象上调用该方法.
如果上述情况不成立,您应该考虑重构代码. 当然,总是可以通过在它的内脏中探索来改变python对象不再有效.除非你有充分的理由,否则你不会这样做.不要费心检查这个,因为你的程序应该只是在你做一些愚蠢的事情时就会爆炸,这样你才能学会并停止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |