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')
谢谢,我不想重构代码。但显然这是必要的。谢谢,我不想重构代码。但显然这是必要的。