我正在尝试在python中编写一个基本的解释器。 所以,我正在尝试声明在命令提示符中输入的字符串是方法还是变量类型。
所以不要尝试任何花哨的东西......
s="12345" #variable
s ="foo()" method
s = "foo(1234)" method
执行此操作的有效方法是什么(例如..对于空格的健壮...如果语法不正确则抛出错误)
我的代码很简单
s = s.strip()
params= s[s.find("(") + 1:s.find(")")] # find the params..
以上命令适用于案例2和案例3,但案例1 ......它给出了奇怪的结果..
答案 0 :(得分: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]