for i: str in test_string:
我收到了无效的语法错误,我想知道背后的原因。
答案 0 :(得分:2)
冒号:
在Python中历来有多种含义。例如,它表示块的开始(with a as b:
,切片预订(a[:]
)和字典对({a: b}
)。
这使得在某些位置引入:
类型的提示成为不可能或至少是模棱两可的。具体而言,诸如for
或with
之类的块标题具有:
的冲突含义,表示标题的结尾。虽然可以定义明确的语法 ,但是要根据未来维护和扩展语法的需要对此进行加权。到目前为止,这还不值得。
目前,您可以使用前面的类型提示或内联类型注释:
a: str
for a in my_iterable:
...
for b in my_iterable: # type: str
...
答案 1 :(得分:1)
您需要按照https://www.python.org/dev/peps/pep-0526/#where-annotations-aren-t-allowed
在循环之前启动它所以你可以这样做
i : str
for i in test_string:
......
......