AttributeError: '_io.StringIO'对象没有'buffer'属性?
我有一个函数,它的作用就是把一个字符串写入一个流缓冲区:
import sys
from typing import IO
def write(s: str, stream: IO[bytes] = sys.stdout.buffer):
stream.write(s.encode())
stream.flush()
我同时使用了flake8和mypy,它们没有报错,但pdoc却出现了一个属性错误:
[...]
def write(s: str, stream: IO[bytes] = sys.stdout.buffer):
AttributeError: '_io.StringIO' object has no attribute 'buffer'
有没有办法解决这个问题呢?
1 个回答
0
这其实不是一个解决方案,但因为标准输出(stdout)是一个TextIO
对象,所以我把这个函数重写成了:
def write(s: str, stream: TextIO = sys.stdout):
stream.write(s)
stream.flush()