当在 python 的字符串中找到某个单词时执行函数?
Execute function when certain word is found in string in python?
我正在为我学校的编程外展俱乐部开发一个程序,我想要做的是让用户输入一个字符串,然后程序搜索该字符串。例如,他们会输入类似
的内容
moveInstant(4, 8)
它会执行函数
def moveInstant(targetX, targetY)
pyautogui.moveTo(targetX, targetY)
有道理吗?基本上采用一个长字符串并将伪代码的每个实例转换为带参数的预定义函数。这个想法是用户可以输入一个完整的txt文件,它可以由程序执行。
我很想知道伪代码是什么样的,或者您将如何实现 'string matching'。但是:
- 获得正确的函数名称和参数后,您就可以使用 exec statement to execute it. If not only the side effect but the return value of a function is what you want, use
eval
(Differences)。或者,
- 对文本文件做一些清理工作并使用 execfile function.
执行它
注意到 eval
或 exec
之类的陈述可能有害,这就是为什么 'string matching' 对于不受信任的输入很重要。
您正在寻找的是 eval()
方法。
Python Docs
示例:
>>> def test(x):
... print(x)
>>> test(3)
>>> 3
>>> y = "test(124)"
>>> eval(y)
>>> 124
我正在为我学校的编程外展俱乐部开发一个程序,我想要做的是让用户输入一个字符串,然后程序搜索该字符串。例如,他们会输入类似
的内容moveInstant(4, 8)
它会执行函数
def moveInstant(targetX, targetY)
pyautogui.moveTo(targetX, targetY)
有道理吗?基本上采用一个长字符串并将伪代码的每个实例转换为带参数的预定义函数。这个想法是用户可以输入一个完整的txt文件,它可以由程序执行。
我很想知道伪代码是什么样的,或者您将如何实现 'string matching'。但是:
- 获得正确的函数名称和参数后,您就可以使用 exec statement to execute it. If not only the side effect but the return value of a function is what you want, use
eval
(Differences)。或者, - 对文本文件做一些清理工作并使用 execfile function. 执行它
注意到 eval
或 exec
之类的陈述可能有害,这就是为什么 'string matching' 对于不受信任的输入很重要。
您正在寻找的是 eval()
方法。
Python Docs
示例:
>>> def test(x):
... print(x)
>>> test(3)
>>> 3
>>> y = "test(124)"
>>> eval(y)
>>> 124