小编Sil*_*ker的帖子

为什么我的python代码在调试器中按预期运行但不是这样?

我在python3.6中编写了一个解析器; 我仍在尽可能地简化它,同时仍然产生错误:

def tokenize(expr):
    for i in expr:
        try:
            yield int(i)
        except ValueError:
            yield i


def push_on_stream(obj, stream):
    yield obj
    yield from stream


class OpenBracket:
    "just a token value, could have used Ellipsis"
    pass


def parse_toks(tokstream):
    result = []
    leading_brak = False
    for tok in tokstream:
        if tok == OpenBracket:
            leading_brak = True
        elif tok == '(':
            result.append(parse_toks(
                push_on_stream(OpenBracket, tokstream)))
        elif tok == ')':
            if not leading_brak:
                raise SyntaxError("Very bad ')'.")
            break
        else:
            result.append(tok)
    return sum(result)


def test(expr="12(34)21"):
    tokens = …
Run Code Online (Sandbox Code Playgroud)

python debugging parsing python-3.x pdb

4
推荐指数
1
解决办法
66
查看次数

标签 统计

debugging ×1

parsing ×1

pdb ×1

python ×1

python-3.x ×1