你繼承自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