gpt4 book ai didi

python - 如何在 Python 的抽象基类中合并类型检查

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:03 25 4
gpt4 key购买 nike

当我定义一个类时,我喜欢包括输入变量的类型检查(使用 assert)。我现在正在定义一个“专用”类 Rule,它继承自抽象基类 (ABC) BaseRule,类似于以下内容:

import abc

class BaseRule(object):
__metaclass__ = abc.ABCMeta

@abc.abstractproperty
def resources(self):
pass


class Rule(BaseRule):
def __init__(self, resources):
assert all(isinstance(resource, Resource) for resource in resources) # type checking
self._resources = resources

@property
def resources(self):
return self._resources


class Resource(object):
def __init__(self, domain):
self.domain = domain


if __name__ == "__main__":
resources = [Resource("facebook.com")]
rule = Rule(resources)

Rule 类的__init__ 函数中的assert 语句确保resources 输入是一个列表(或其他可迭代的)Resource 对象。但是,对于从 BaseRule 继承的其他类也是如此,因此我想以某种方式将此断言合并到 abstractproperty 中。我该怎么做?

最佳答案

关于python - 如何在 Python 的抽象基类中合并类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940556/

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