我猜这两个问题是相关的,所以我会一起发表:
1. - 是否可以在链式赋值中使用类型提示?
这两个尝试失败了:
>>> def foo(a:int):
... b: int = c:int = a
File "<stdin>", line 2
b: int = c:int = a
^
SyntaxError: invalid syntax
>>> def foo(a:int):
... b = c:int = a
File "<stdin>", line 2
b = c:int = a
^
SyntaxError: invalid syntax
2. - 是否可以在多个赋值中使用类型提示?
这是我的几次尝试:
>>> from typing import Tuple
>>> def bar(a: Tuple[int]):
... b: int, c:int = a
File "<stdin>", line 2
b: int, c:int = a
^
SyntaxError: invalid syntax
>>> def bar(a: Tuple[int]):
... b, c:Tuple[int] = a
...
File "<stdin>", line 2
SyntaxError: only single target (not tuple) can be annotated
>>> def bar(a: Tuple[int]):
... b, c:int = a
...
File "<stdin>", line 2
SyntaxError: only single target (not tuple) can be annotated
我知道在这两种情况下类型都是从a的类型提示中推断出来的,但是我有一个很长的变量列表(在类的__init__
中),我想要更加明确。
我正在使用Python 3.6.8。