遍历到基地 class
Traverse up to base class
我可以执行以下操作来获取我正在与实例一起使用的 class 的名称:
self.__class__.__name__
有没有办法在不超出任何 django 内置类型的情况下获得基础 class 名称?如果是这样,那怎么可能呢?例如,如果我有:
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代表方法解析顺序.
我可以执行以下操作来获取我正在与实例一起使用的 class 的名称:
self.__class__.__name__
有没有办法在不超出任何 django 内置类型的情况下获得基础 class 名称?如果是这样,那怎么可能呢?例如,如果我有:
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代表方法解析顺序.