私の推測では、これはカスタム関数を に追加できるようにするためのものimghdr.tests
です。モジュールのドキュメントimghdr
から-
imghdr
この変数に追加することで、認識できるファイル タイプのリストを拡張できます。
imghdr.test
個々のテストを実行する関数のリスト。各関数は 2 つの引数を取ります: バイトストリームと開いているファイルのようなオブジェクトです。what() がバイトストリームで呼び出されると、ファイルのようなオブジェクトは None になります。
テスト関数は、テストが成功した場合は画像の種類を説明する文字列を返し、失敗した場合は None を返します。
ドキュメントからわかるように、imghdr
モジュールはリストへの拡張を許可しtests
ます。f
このリストに追加されたこれらのカスタム関数には、追加の引数が存在する可能性があると思います。
imghdr.what()
機能を見てみましょう-
if h is None:
if isinstance(file, basestring):
f = open(file, 'rb')
h = f.read(32)
else:
location = file.tell()
h = file.read(32)
file.seek(location)
ご覧のとおりwhat()
、関数にファイル名を送信すると、ファイルから最初の 32 バイトのみが読み取られ、それらの 32 バイトのみが関数のh
引数に送信されます。最初のバイトが画像形式を決定するのに十分ではありません (特にカスタム テストの場合)。test
f
32