XML ファイルに対して多くの主要な作業を行う Python 関数があります。
この関数を使用する場合、2 つのオプションが必要です。XML ファイルの名前を渡すか、事前に解析された ElementTree インスタンスを渡します。
関数がその変数で与えられたものを判断できるようにしたいと思います。
例:
def doLotsOfXmlStuff(xmlData):
if (xmlData != # if xmlData is not ET instance):
xmlData = ET.parse(xmlData)
# do a bunch of stuff
return stuff
この関数を呼び出すアプリは、一度だけ呼び出す必要がある場合もあれば、複数回呼び出す必要がある場合もあります。何度か呼び出して毎回 XML を解析するのは、非常に非効率的で不必要です。この 1 つの関数をラップするためだけにクラス全体を作成するのは少しやり過ぎに思え、最終的にコードのリファクタリングが必要になります。例えば:
ourResults = doLotsOfXmlStuff(myObject)
なる必要があります:
xmlObject = XMLProcessingObjectThatHasOneFunction("data.xml")
ourResult = xmlObject.doLotsOfXmlStuff()
また、これを多数の小さなファイルで実行する必要がある場合、そのたびにクラスが作成されるため、効率が悪いようです。
入ってくる変数の型を簡単に検出する簡単な方法はありますか? 多くのPythonerが「チェックする必要はない」と言うのは知っていますが、チェックする良い例が1つあります。
他の強い型付けの言語では、メソッドのオーバーロードでこれを行うことができますが、それは明らかに Pythonic の方法ではありません...