【发布时间】:2021-08-11 20:13:33
【问题描述】:
使用 python 的类型模块,我正在使用 NewType 创建不同的类型。
UserId = NewType('UserId',int)
根据文档https://docs.python.org/3/library/typing.html,如果我对任何操作使用新的数据类型 UserId,则输出将是原始类型,即 int。但是这样做:
总计 = UserId(0.3) + UserId(100)
type(total) # 输出为浮点数。为什么要改成浮点数,应该是int?
即使它允许将任何其他数据类型传递给 UserId。
some_id = UserId('adfd')
没有错误限制为原始类型。即诠释。
另外 some_id 数据类型设置为 str。
如果数据类型与原始数据类型不匹配,我试图依靠它进行类型检查和错误输出。困惑所以想征求意见,这里有什么问题吗?
【问题讨论】:
-
根据文档,“Python 运行时不强制执行函数和变量类型注释”。它只是一个类型hint。
-
谢谢。这也很有帮助