你继承自dict
。 truthiness的字典(像几乎每个集合)取决于它是否包含元素。这适用于列表,集合,字典和字符串(字符串有时被视为有序的字符集合)。此外,很多图书馆都有遵循相同规则的集合(如计数器等)。
你在这里构建一个字典不包含任何元素。所以真实性是False
。
但是,您可以再次重写感实性,有:
class Example(dict):
def __init__(self, name):
self.name = name
def __bool__(self): return True
def get_name(self):
return self.name
需要注意的是不论你找到了这样Example(..)
与底层空字典感实性是决定你必须做出自己(和当然最好遵循“Python的指导原则”),所以上面的代码片段不是本身对你的应用程序是正确的,它取决于你想要用它做什么
此外,将其他未命名参数(*args
)和命名参数(**kwargs
)传递给字典构造函数以立即将元素添加到基础字典以及修改__repr__
和/或__str__
函数会很有用。
class Example(dict):
def __init__(self, name,*args,**kwargs):
super().__init__(*args,**kwargs)
self.name = name
def __bool__(self):
return True
def get_name(self):
return self.name
您从'dict'继承而来一个空字典计算为'False'。你想要做什么测试?例如'如果ex不是None:'将评估为'True'。 – AChampion