ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何在Python中实现Required属性

2019-07-15 20:57:04  阅读:865  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有