python - 遍历到基类
问题描述
我可以执行以下操作来获取与实例一起使用的类的名称:
self.__class__.__name__
有没有办法在不超出任何 django 内置类型的情况下获取基类名称?如果是这样,那该怎么做?例如,如果我有:
class Wire:
def __init__(self, default=True):
self.state = default
self.observers = []
class LED(Wire):
"""
For debugging."""
我怎么能得到(不知道可能有多少级继承)?:
>>> l = LED()
>>> l.get_base_case() # 'Wire'
解决方案
您可以mro()
在对象的类型上使用:
type(l).mro()[1] # 0: the type itself, 1: base class in linear hierarchy, ...
这里mro代表方法解析顺序。
推荐阅读
- c++ - 动态类型转换为变量类型
- node.js - nodejs 中的 qr-scanner 模块出现错误 ReferenceError: Worker is not defined
- android - 为什么Android12源码库中找不到一些新的API,比如CompanionDeviceManager.startObservingDevicePresence
- html - 为什么这些栏在 PageSpeed 中看起来不同?
- python - AttributeError:“客户端”对象没有属性“命令”“模块@client.command() 中的第 6 行
- java - 表示字节到字节数组的字符串
- excel - VBA excel 无法通过 Internet Explorer 登录网站
- ios - 与 iCloud 的跨设备数据同步是否需要 Core Data?
- c++ - 使用 Eigen3 快速求解稀疏正定线性系统
- azure - BrowserStack 和 Azure 集成和运行测试