我刚刚读过“isinstance() 被认为有害”,这似乎是合理的。简而言之,它主张避免使用此功能。
好吧,刚才我碰巧正在编写一个程序,该程序接受结构为树的输入,并且需要树的结构信息。没有时间实现 GUI,我强迫用户将其写入配置文件(我知道这是一个糟糕的界面,但时间安排真的很紧)。我的用户技术性很强,但不一定懂python。我选择该文件将包含代表输入树的列表列表(列表列表等),最终元素是树的叶节点。我认为这比将字典的合成器强加给用户要好得多。
我计划递归解析列表如下(省略树结构的使用,让我们简化并说必须在每个叶节点上调用treatLeafNode()):
def parseTree(input):
if isinstance (input, list):
for item in input:
parseTree(item)
else:
treatLeafNode(item)
根据这篇文章,我想知道是否有一种简单的方法可以在不使用 isinstance() 的情况下对其进行递归......
有人知道吗?