打字有什么区别吗?强制转换函数和内置强制转换函数?
x = 123
y = str(x)
from typing import cast
x = 123
y = cast(str, x)
我预料我的儿子可能不喜欢第一种情况,而更喜欢打字。但事实并非如此。
str(x)
返回一个新的str
对象,独立于原来的int
。这只是"铸造"的一个例子。在一个非常松散的意义上(我不认为是有用的,至少在Python代码的上下文中)。
cast(str, x)
只是返回x
,但是告诉类型检查器假装返回值是str
类型,不管x
实际上是什么类型。
因为Python变量没有类型(类型是值的一个属性),所以不需要像C语言那样使用强制转换(在C语言中,您可以根据变量的强制转换类型来更改查看变量内容的方式)。