【发布时间】:2018-11-25 11:49:57
【问题描述】:
def check_classes(cls):
if len(cls.__bases__) == 0:
return []
else:
test_list = []
for x in range(len(cls.__bases__)):
test_list += [cls] + check_classes(cls.__bases__[x])
for x in cls.__bases__:
return test_list + [x]
我目前有一个递归函数,它将一个类作为其参数并返回所有基类的列表。这工作正常,但它在列表中有许多重复的类。我想返回一个集合而不是一个列表,并且想知道如何更改代码来做到这一点。
【问题讨论】:
-
如果你想返回
set,为什么不直接使用set? -
使用'return set(test_list + [x])'
-
为什么完全使用而不是
class.__mro__? -
不要破坏您的帖子。我已经回滚到以前的健全版本。
标签: python class recursion set