python - isinstance(list, object) 和 issubclass(list, object) 都返回 True
问题描述
我正在尝试了解类的特殊属性。通常,我使用dir()
方法来获取一个类的属性和方法。但是,该属性__mro__
似乎没有出现在dir()
任何类的结果中。
根据定义,dir()
递归地获取从传入类到基类的所有属性和方法,一直到继承链的上游object
。基于这个定义,我假设属性__mro__
实际上不是上述继承链中任何类的属性。
后来,我偶然发现了这个类type
,发现它的mro
方法描述中包含了该方法help(type)
。我想,一个类必须继承自type
才能使用这个方法。所以我用一个名为的新样式类进行了测试Apple
:
isinstance(Apple, type)
返回True
issubclass(Apple, type)
返回False
- 甚至
isinstance(object, type)
返回True
奇怪的是,Apple
不继承自type
; 相反,它是它的一个实例。这让我很困惑:我不知道__mro__
现在从哪里来。
解决方案
推荐阅读
- android-layout - 如何构建 Lite 应用程序,例如 Twitter Lite 或 Facebook Lite
- html - Django不在模板中显示第一张图片
- java - 无法将 parcelable arraylist 发送到服务类
- java - Java String.format 两位小数,点作为千位分隔符,逗号作为小数分隔符
- c# - 如何在基于令牌的身份验证中从 ASP.NET Web API 发送角色并在 ASP.NET MVC 中设置它
- c - 从文件中读取矩阵并检索它们的维度
- android - 当我使用 minifyEnabled 应用程序时不断崩溃
- python-3.x - 决策树模型的精度为零
- javascript - 为什么 db.findAll() 不是函数?
- java - libGDX:根据用户输入更改 PNG 的颜色