我剛剛讀了"isinstance() considered harmful",這似乎是合理的。總之,它主張避免使用這個功能。在沒有isinstance的列表上遞歸遞歸()
剛纔我碰巧寫了一個程序,它把輸入結構化爲一棵樹,並且需要樹的結構信息。沒有時間來實現GUI,我強加給用戶把它寫入配置文件(我知道這是一個糟糕的界面,但時間表非常緊密)。我的用戶非常技術性,但不一定知道python。我選擇該文件將包含代表輸入樹的列表(列表等)列表,最後的元素是樹的葉節點。我認爲這比將詞典的合成詞強加給用戶好得多。
我打算遞歸解析列爲以下(ommiting利用樹的結構,讓我們簡化和說treatLeafNode()必須被調用每個葉節點上):
def parseTree(input):
if isinstance (input, list):
for item in input:
parseTree(item)
else:
treatLeafNode(item)
在光文章,我想知道是否有一個簡單的方法來彌補,而不使用isinstance()...
有誰知道嗎?
++,合理的建議 – 2011-05-04 12:01:02