如果由于某种原因我使用此函数打印出python类层次结构,则“float”类型不会显示在输出中。
def printHier(cls, indent = 0, tab = " "):
print "%s%s" % (tab*indent, cls.__name__)
try:
subclasses = cls.__subclasses__()
except TypeError:
subclasses = cls.__subclasses__(cls)
subclasses.sort(key = lambda v: v.__name__)
for subcls in subclasses:
printHier(subcls, indent = indent + 1)
printHier(object)
如果我定义了这个附加功能(如下所示)并在调用第一个函数之前调用它,则浮动显示。谁能解释这种奇怪的行为?有些python类有些懒惰吗?我想知道它是否也可能缺少其他一些课程。
def tweak(cls):
"""
for some reason "float" doesn't show up in hierarchy unless
we "prod" it...
"""
superclasses = cls.__mro__
tweak(float)
答案 0 :(得分:4)
这似乎是Python 2.6.1的一个问题。 float
显示我的安装(在Windows上为2.6.4和2.7)以及由Jay和samplebias测试的其他较新版本。
我在CPython更改日志中查找了相关内容,但我找不到任何似乎相关的内容。