【发布时间】:2018-02-19 16:51:25
【问题描述】:
背景:我目前正在为 ipython 创建一个 line-magic。这种魔法只适用于将函数的返回值分配给变量的行。
我正在寻找一种方法来确保一行是 python 中的有效函数调用+赋值。
例如应接受以下内容:
a = b()
a,b = c(d,e="f")
a = b(c()+c)
以下内容将被拒绝:
a = def fun() # no function call
b(a=2) # no assignment
a = b + c # no function call
a = b() + c() # top-level on right-hand-side must be function call
如果该行根本不是有效的python,我不在乎它是否通过,因为这将在另一个阶段处理。
【问题讨论】:
-
你应该写一个解析器。正则表达式对此不够强大。
标签: python regex parsing string-operations