据我了解,Python 中变量的工作方式与 Java 中相同。也就是说,在赋值时,我们将赋值右侧对象的引用绑定到当前作用域中的变量(名称)x。但在 Java 中,名称有定义,这与 Python 不同。并且在这个地方,指定了类型。我知道Python最初是一种无类型语言,但现在它有类型注释,并且还有类型检查器(即使它们不是该语言的一部分)。他们认为哪种类型的注释是正确的。我会写
def h():
if random.random() >= 0.5:
v: str = input()
else:
v: int = 3
f(v) # type of v - ???
Python 中的变量注释约定是什么?
类型提示是静态的,这意味着
v
不能具有不同的静态类型,具体取决于执行if
语句的哪个分支。您能做的最好的事情就是注释 v
first,然后尝试稍后使用类型缩小。
def h():
v: str | int
if random.random() >= 0.5:
v = input()
else:
v = 3
f(v) # Legal if f accepts an argument of type str | int