Python 类型提示和不同类型的变量重新分配

Python 类型提示和不同类型的变量重新分配,python,type-hinting,Python,Type Hinting,我在赋值中得到一个错误不兼容的类型(表达式的类型为“str”,变量的类型为“bytes”)关于下面的代码 导入系统 从输入import binaryo def fn1(流:binaryo=sys.stdin.buffer): 对于流中的行: line=line.decode('utf-8')。替换('',).strip()。这是不可能的 因此,最直接的解决方案是对不同的类型使用不同的名称 for b_line in stream: line = b_line.decode('utf-8'

我在赋值中得到一个错误
不兼容的类型(表达式的类型为“str”,变量的类型为“bytes”)
关于下面的代码

导入系统 从输入import binaryo def fn1(流:binaryo=sys.stdin.buffer): 对于流中的行: line=line.decode('utf-8')。替换('',).strip()。这是不可能的

因此,最直接的解决方案是对不同的类型使用不同的名称

for b_line in stream:
    line = b_line.decode('utf-8').replace(' ', '').strip()
理由是,否则,当变量的含义是什么时,mypy可能完全不可预测,如下所示:

while ...:
   a = 's'
   ...possible break...
   a = 1

a + 2  # impossible to verify correctness
这是不可能的

因此,最直接的解决方案是对不同的类型使用不同的名称

for b_line in stream:
    line = b_line.decode('utf-8').replace(' ', '').strip()
理由是,否则,当变量的含义是什么时,mypy可能完全不可预测,如下所示:

while ...:
   a = 's'
   ...possible break...
   a = 1

a + 2  # impossible to verify correctness

无法复制此内容,请提供更多上下文和输出error@SerialLazer我更新了这个问题,thxI认为它抱怨在对流中的行执行
时将缓冲区(即字节)读取为字符串。尝试此操作:
用于流中的行。解码('utf-8')。拆分('\n')
无法复制此操作,请提供更多上下文和输出error@SerialLazer我更新了这个问题,thxI认为它抱怨在对流中的行执行
时将缓冲区(即字节)读取为字符串。尝试以下操作:
用于流中的行。解码('utf-8')。拆分('\n')
谢谢,我不想重构代码。但显然这是必要的。谢谢,我不想重构代码。但显然这是必要的。