当我定义一个类时,我喜欢包括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)
类函数中的语句assert
确保输入是对象的列表(或其他可迭代的)。但是,对于其他继承自 的类也是如此,因此我想将这个断言合并到不知何故。我该怎么办?__init__
Rule
resources
Resource
BaseRule
abstractproperty