python 2 では file が適切なクラスだったので書きました
class MyFile(file):
def floats_from_csv(self):
strs = self.read(1000000).split(',')
for i in strs:
yield float(i)
with MyFile("x.csv", "rt") as x:
for i in x.floats_from_csv():
...
Python3 では、多数のファイル置換にパブリック コンストラクターがないため、サブクラス化して__init__
関数を取得することはできません。委任を使用したハックがありますが、醜いです。ビルトイン IO クラスのサブクラスを作成する承認された方法は何ですか?