它们之间的区别是什么

i: int = 1

i = int(1)

这一个比另一个好吗?

推荐答案

直到你知道你需要别的东西,就用i = 1.

在Python中,1int(1)返回相同的值(类型为int),而后者要做更多的工作,因此是多余的,所以如果需要整数1,就使用1.

如果您需要使用浮点值(用于将来的非整数计算),请使用例如1.0(例如,作为f = 1.0).

i = ...i: int = ...之间的区别在于后者包含类型提示.类型提示声明变量i应该包含类型int的值(例如,12,而不是1.0'1').类型提示在许多情况下都会被忽略,因此它们不会有什么不同.如果你还没有令人信服的理由来使用它们,那就不要使用它们.

以下是从Python3.12开始使用类型提示的方式:

  • CPython(默认值,官方Python解释器),从3.12版开始,忽略类型提示:CPython执行.py程序时就像删除了类型提示一样.
  • Numba,一个Python JIT(为了更快地执行一些Python代码),忽略函数参数上的类型提示.它尊重Numbadecorator 中指定的类型信息.
  • mypyc中,一个Python编译器(将Python模块编译为C扩展,运行速度比原始的Python模块更快)确实使用类型提示..py源文件包含的类型提示越多,代码mypyc生成的速度就越快.
  • 有一些类型判断器被实现为命令行工具(如mypy),用于读取和分析(但不执行).py源代码和打印类型错误.例如,他们报告i: int = 1; f: float = i; print(f)有错误,但CPython仍然执行代码而没有错误.
  • 有一些类型判断器集成到代码编辑器(IDE)中,如PyCharm和Visual Studio Code.它们在后台运行,并在文件编辑窗口中显示类型错误.有些类型判断器(如上面的mypy)可以从命令行和代码编辑器中运行.

Python相关问答推荐

我们可以在apps.py?中使用Post_Save信号吗

两极按组颠倒顺序

Pandas基于另一列的价值的新列

如何将自动创建的代码转换为类而不是字符串?

使用imap-tools时错误,其邮箱地址包含域名中的非默认字符

当值是一个integer时,在Python中使用JMESPath来验证字典中的值(例如:1)

强制venv在bin而不是收件箱文件夹中创建虚拟环境

使用多个性能指标执行循环特征消除

Python中使用时区感知日期时间对象进行时间算术的Incredit

如何根据另一列值用字典中的值替换列值

对Numpy函数进行载体化

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

标题:如何在Python中使用嵌套饼图可视化分层数据?

删除所有列值,但判断是否存在任何二元组

基于字符串匹配条件合并两个帧

numpy卷积与有效

未知依赖项pin—1阻止conda安装""

将scipy. sparse矩阵直接保存为常规txt文件

使用Python查找、替换和调整PDF中的图像'

在代码执行后关闭ChromeDriver窗口