Python 关键词';str';用于赋值运算符的LHS

Python 关键词';str';用于赋值运算符的LHS,python,string,Python,String,理解我的项目代码中的语法问题 new_addres: str = self.address vs new_address是变量,str是python关键字,address在代码的运行时填充。你能帮我理解为什么我们在第一行赋值运算符之前使用'str'吗?两行代码是否相似?这是一个类型注释,指示变量的类型 Python并不真正关心是否使用注释,当然也不会强制使用注释:Python不是强类型语言。但是语法支持这些注释,因为它们非常方便自动生成文档 换句话说, my_variable:type = e

理解我的项目代码中的语法问题

new_addres: str = self.address
vs


new_address是变量,str是python关键字,address在代码的运行时填充。你能帮我理解为什么我们在第一行赋值运算符之前使用'str'吗?两行代码是否相似?

这是一个类型注释,指示变量的类型

Python并不真正关心是否使用注释,当然也不会强制使用注释:Python不是强类型语言。但是语法支持这些注释,因为它们非常方便自动生成文档

换句话说,

my_variable:type = expression
在语义上等同于

my_variable = expression
就Python而言。如果其他程序愿意的话,类型注释只供它们注意


编辑:请注意,这是Python 3.6中的一个新特性,因此这些注释在现实世界中仍然不常见。你今天看到的大多数代码库都不使用它们。

new\u addres:str=self.address
是类型暗示。您可以阅读python中的工作原理。它在运行时没有任何实际的区别,但在IDE中很有用


new\u addres=str(self.address)
正在将
self.address
转换为字符串。

请注意,这些都是在3.7中引入的。@code学徒很好!注意:不,@user2357112哦,这是我的错,我不记得它们出现在哪个版本,所以我只是不假思索地接受了评论。@user2357112谢谢你的更正。
my_variable = expression