オブジェクトがファイルであるかどうかを確認するPython 2/3互換の方法はありますか?オブジェクトがPython 2および3のファイルであるかどうかをチェック
オブジェクトfilehandler
が実際にfile
オブジェクトであるかどうかを確認する必要があります。このコードは、私が
isinstance(filehandler, file)
しかしfile
is not part of Python 3を行うことができますのPython 2ではPythonの2と3の両方で実行する必要があるので、Pythonのthis answerによると3
を実行すると、このコードはPythonで、NameError
を上げます3 io.IOBase
は、オブジェクトがファイルであるかどうかを調べるのにPython 2のfile
はサブクラスio.IOBase
を持たないので、isinstance(filehandler, io.IOBase)
は機能しません。
私はをやって思ったが、私は、Python 3
でそれを実行したときには、まだNameError
を与えるのPython 2.7と3の両方と互換性があり、これを行う方法はありますか?
'lambda 'のポイントは無名関数なので、名前付き関数が必要な場合は' def'を使わない理由はありません。はるかに明瞭ではるかに読みやすい – jpyams