2016-11-15 11 views
0

私は引数としてファイルポインタをとり、それに書き込む関数を書いています。そして、私はその引数に型ヒントを追加したい:Pythonのヒント:引数としてファイルポインタを指定する方法は?

def write_some_stuff(fp: _io.TextIOWrapper): 
    ... 

_io.TextIOWrappertype(open(...))が私を与えるものです。

何か他に使用する必要がありますか?私はこの目的のためにtypingモジュールで何も見つけることができませんでした。

+0

あなたの機能はファイルインターフェイスのどの面を気にしていますか?例えば、 'Iterable [str]'で十分でしょうか? – jonrsharpe

+0

@jonrsharpe関数は、この関数に書き込むことができる必要があります。私は質問を更新しました。 – scribu

答えて

1

もう少し汎用的で、テキストモードのファイルオブジェクト(つまり、read()がUnicode文字列を返す)を許可する場合は、おそらくio.TextIOBase引数を取ることをお勧めします。これにより、より一般的なio.TextIOWrapperインスタンスに加えて、io.StringIOのインスタンスが許可されます。

ioモジュールの名前には、TextIOWrapperを付けても、アンダースコアは必要ありません。通常のioモジュールは、_ioモジュールから関連するすべてのタイプを独自の名前空間にインポートします。

関連する問題