Skip to main content

将 C 风格的 for 循环添加到 Python。

项目描述

被诅咒的

将 C 风格的 for 循环添加到 Python,因为你可以。

>>> for (i = 0; i < 10; i += 2):
...     print(i)
0
2
4
6
8

安装

pip install cursed-for

用法

# coding在要诅咒的文件顶部添加以下注释:

# coding: cursed_for

然后根据需要编写受诅咒的 for 循环。检查此文件以获取示例。

对于交互式 REPL,cursed-for请在终端中输入:

$ cursed-for
Cursed Python REPL, 3.10.4 (main, Apr  2 2022, 09:04:19) [GCC 11.2.0]
>>> x = 10
>>> for (;x > 5;x -= 3):
...     print(x)
10
7

但为什么?

这是因为我有一个晚上有一个被诅咒的想法,我把它放在了 推特上:

虽然这有效,但我不喜欢它的外观。但是使用我使用的方法,我被 Python 的语法所限制,它真的不支持我想做的事情。但后来我偶然发现了几个, 它们为我提供了犯下这种暴行所需的工具。

好的,但这怎么可能呢?

我写了一篇关于我实现这一点的方法的博客。

开发过程中发生的粗略迭代记录在 方法文件夹中。它包含 AST 操作方法和“真正被诅咒”的方法。

“旧方式”的用法

第一个版本(如原始推文所示)也存在于存储库中,用于存档目的。

请注意,这仅在 REPL 中真正有效。要启动它,请在终端中运行cursedfor.py 。它是一个文件,如果需要,只需下载一个文件即可获得。

>>> with _for(i := 0, i < 10, i += 2):
...     print(i)
0
2
4
6
8

救命,东西坏了!

您可以使用该cursed-for-decode命令来确定模块正在生成哪些代码:

$ cat x.py                                                  
for (i = 1; i < 100; i += 1):
    print(i)

$ cursed-for-decode x.py
i = 1
while i < 100:
    print(i)
    i += 1

如果生成的代码看起来错误,请使用代码片段提交错误报告。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

cursed_for-0.3.0-py3-none-any.whl (6.4 kB 查看哈希)

已上传 py3