A T*_*A T 6 python types static-typing strong-typing rpython
我更喜欢Python的语法糖。和标准库函数。
但是我不喜欢的一个功能;是隐式键入。
是否有带有显式类型的Python发行版?哪些仍然与例如:PyPi上的软件包兼容?
[我正在研究RPython]
sma*_*c89 11
从 python 3 开始,使用类型注释的能力通过PEP 3017被引入到 python 标准中。
快进到 python 3.5 和PEP 0484在此基础上引入类型提示以及typing
模块,该模块使人们能够指定变量的类型或函数的返回类型。
from typing import Iterator
def fib(n: int) -> Iterator[int]:
a, b = 0, 1
while a < n:
yield a
a, b = b, a + b
Run Code Online (Sandbox Code Playgroud)
以上示例摘自https://pawelmhm.github.io
根据484条注释:
虽然这些注释在运行时通过通常的 __annotations__ 属性可用,但在运行时不会进行类型检查。相反,该提案假设存在一个单独的离线类型检查器,用户可以自愿运行其源代码。本质上,这样的类型检查器充当了非常强大的 linter。(虽然个人用户当然可以在运行时使用类似的检查器来执行契约式设计或 JIT 优化,但这些工具还不够成熟。)
尽管 python 提供了这种形式的“静态类型”,但它不会在运行时强制执行,并且 python 解释器会忽略您提供的任何类型规范,并且仍将使用鸭子类型来推断类型。因此,由您来寻找可以检测类型的任何问题的 linter。
在 python 标准中包含输入的动机主要受mypy 的影响,因此可能值得一试。他们还提供了可能证明有用的示例。
最简洁的答案是不。你所要求的是深深地内置在 Python 中,如果不彻底改变语言,就无法改变,那不会是 Python。
我假设您不喜欢重新分配时重新键入的变量?如果这是您的代码的问题,您可能会考虑其他方法来检查这一点。
归档时间: |
|
查看次数: |
4002 次 |
最近记录: |