「isinstance() は有害と見なされます」を読んだところですが、妥当なようです。要するに、この関数の使用を避けることを主張しています。
さて、ちょうど今、ツリーとして構造化された入力を受け取り、ツリーの構造情報を必要とするプログラムを書いています。GUI を実装する時間がないので、ユーザーにそれを構成ファイルに書き込むように強制します (これが悪いインターフェイスであることはわかっていますが、スケジュールは非常にタイトです)。私のユーザーは非常に技術的ですが、必ずしも python を知っているわけではありません。入力ツリーを表すリストのリスト (リストのリストなど) をファイルに含めることを選択しました。最後の要素はツリーのリーフ ノードです。これは、ユーザーに辞書のシンタックスを押し付けるよりもはるかに優れていると思います。
次のようにリストを再帰的に解析する予定です (ツリーの構造の使用を省略し、単純化して、各リーフ ノードでtreatLeafNode() を呼び出す必要があるとしましょう)。
def parseTree(input):
if isinstance (input, list):
for item in input:
parseTree(item)
else:
treatLeafNode(item)
記事に照らして、 isinstance() を使用せずにそれを再帰する簡単な方法があるかどうか疑問に思っています...
誰か知っていますか?