标签:python
如果我有一个如下所示的类(只有更多的属性),在调用特定方法之前是否有清晰的方法来记录哪些字段是必需的?
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对象不再有效.除非你有充分的理由,否则你不会这样做.不要费心检查这个,因为你的程序应该只是在你做一些愚蠢的事情时就会爆炸,这样你才能学会并停止.
标签:python 来源: https://codeday.me/bug/20190715/1471171.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。