1

我正在尝试用 python 编写一个基本的解释器。所以,我正试图声明在命令提示符中输入的字符串是方法还是变量类型。

所以不要尝试任何花哨的东西..

s="12345" #variable
s ="foo()" method
s = "foo(1234)" method

什么是一种强大的方法来做到这一点(例如..对空格健壮...如果语法不正确则抛出错误)

我的代码非常简单

s = s.strip()

params=   s[s.find("(") + 1:s.find(")")] # find the params..

上面的命令适用于案例二和案例三,但对于案例 1.. 它给出了奇怪的结果..

4

1 回答 1

1

对于你被要求的场景,我认为这可以解决问题

试试吧

s[ 1+s.find("(") if s.find("(") > 0 else None : -1 if s.find(")") > 0 else None]

编辑:按照保罗的建议做一点整洁:

s[ 1+s.find("(") if '(' in s else None : -1 if ')' in s  else None]
于 2013-02-09T23:46:01.983 回答