gpt4 book ai didi

python-3.x - 冒号(:) do in this code do?

转载 作者:行者123 更新时间:2023-12-04 02:44:09 28 4
gpt4 key购买 nike

我在分配变量时不小心使用了 : 而不是 = ,令我惊讶的是它没有产生错误。例如,以下运行没有投诉:

Python 3.7.4 (default, Jul  9 2019, 18:15:00)
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a: 'hello world'
>>>

然而,这似乎并没有实际做任何事情。我试过查看文档和教程,但只找到 compound statements , dict comprehensionssequence slicing ,我看不出这两种情况如何适用。

相比之下,在 Python 2.7 中它确实产生语法错误:

Python 2.7.16 (default, Apr 12 2019, 15:32:52)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a: 'hello world'
File "<stdin>", line 1
a: 'hello world'
^
SyntaxError: invalid syntax

为什么这不会导致 Python 3.7 中的语法错误,它可以用于什么(如果有的话)?

最佳答案

最新版本的 Python 支持一种称为类型提示或类型注释的语法。此语法允许您编写 a: int 来声明在当前上下文中变量 a 的类型为 int

编译器实际上并不会检查这一点,实际上会允许在变量名后使用任何表达式,因此您使用的字符串将被接受为有效的类型提示。

参见 https://www.python.org/dev/peps/pep-0526/有关类型提示的详细说明。

如果您确实向代码中添加了类型提示,那么您可以使用 mypy 等工具所以执行静态类型检查。

关于python-3.x - 冒号(:) do in this code do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959461/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com