这实际上不是ABC的问题,而是PyMongo的问题。有一个关于它的问题在这里。似乎pymongo重写
__getattr__以返回某种数据库类。这意味着将
host.__isabstractmethod__返回一个数据库对象,该对象在布尔上下文中为true。这使ABCmeta认为这
host是一种抽象方法:
>>> bool(host.__isabstractmethod__)True
问题报告中描述的解决方法是
host.__isabstractmethod__ =False在对象上手动设置。关于这个问题的最后评论表明,已经为pymongo 3.0修复了问题。


![自定义定义的NullObject中的TypeError [重复] 自定义定义的NullObject中的TypeError [重复]](http://www.mshxw.com/aiimages/31/419916.png)
