Python3で型注釈入れながらプログラミングしていて、バイトストリームというものを表現したくなったとします。つまり、表題の通り、open('file', 'wb') と sys.stdout.buffer と io.BytesIO(b'')のどれも受け入れられるような型というのを書きたくなったとします。
そういう最小公倍数的な型がないか試してみると
python
1In [5]: sys.stdout.buffer.__class__.mro() 2Out[5]: [_io.BufferedWriter, _io._BufferedIOBase, _io._IOBase, object] 3 4In [7]: open('a', 'wb').__class__.mro() 5Out[7]: [_io.BufferedWriter, _io._BufferedIOBase, _io._IOBase, object] 6 7In [10]: io.BytesIO.mro() 8Out[10]: [_io.BytesIO, _io._BufferedIOBase, _io._IOBase, object]
と、_io._BufferedIOBase
という共通項は見つかりました。
ただ、名前にアンダースコアが入っているとおり、これは非公開クラスです。今後のバージョンでも存在し続けることの保証はないので書き捨てプログラム以外には使えません。
ないのでしょうか、「バイトストリーム」を意味する型って。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。