gpt4 book ai didi

python - 在 python 中重命名 elif

转载 作者:太空狗 更新时间:2023-10-30 02:26:10 26 4
gpt4 key购买 nike

我最近尝试在 python 中添加一些可选的语句名称并且工作正常,直到我到达 if 语句并为 else 和 elif 添加了一个可选名称:

if_stmt = 'if' test ':' suite ('elif' test ':'suite)* ['else' ':' suite] |  'wenn' test ':' suite ('andernfalls' test ':'suite)* ['sonst' ':' suite]

然后它编译没有错误,但是当我用 wenn 和 andernfalls 运行测试时,解释器抛出了错误:

SystemError: unexpected token in 'if' statement: andernfalls 

我所做的所有其他添加都非常有效。那么,为什么我不能添加其他 else 和 elif,我该怎么做呢?

我正在修改来自 python 网站的最新 python 2.7 代码

编辑我的测试代码是:

x = 1
y = 2
wenn x > y:
print 1
andernfalls x < y:
print 2
sonst:
print 3

我在顶部添加行的文件是 python 源代码的 Grammar 目录中的 Grammar 文件

最佳答案

elseelif 在 AST 生成代码中有一些特殊情况处理:

static stmt_ty
ast_for_if_stmt(struct compiling *c, const node *n)
{
...
/* s[2], the third character in the string, will be
's' for el_s_e, or
'i' for el_i_f
*/
if (s[2] == 's') {
...
}
else if (s[2] == 'i') {
...
if (TYPE(CHILD(n, (n_elif + 1))) == NAME
&& STR(CHILD(n, (n_elif + 1)))[2] == 's') {
...

您必须修改 Python/ast.c 中的 ast_for_if_stmt改变这种处理方式。

关于python - 在 python 中重命名 elif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45848981/

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