gpt4 book ai didi

python - 如何在 Python 中实现必需的属性

转载 作者:太空狗 更新时间:2023-10-30 01:49:31 24 4
gpt4 key购买 nike

如果我有一个像下面这样的类(只有更多的属性),在调用特定方法之前是否有明确的方法来记录哪些字段是必需的?

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

最佳答案

在初始化对象时确保提供所有属性不是最好的选择吗?然后,当您尝试访问它们时,您的所有属性都将被定义。

例如,

class Example(object):
def __init__(self, prop1, prop2):
self.prop1 = prop1
self.prop2 = prop2

此外,来自 PEP8 的注释:

For simple public data attributes, it is best to expose just the attribute name, without complicated accessor/mutator methods.

那么为什么要使用属性呢?

关于python - 如何在 Python 中实现必需的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com