我正试着做这样的事
更新-有关应用程序的一些详细信息
应用程序向用户“公开”一些变量。公开变量的一个例子是user_name。然后,应用程序的用户可以创建一个名为“user_name_upper”的新变量,该变量可以设置为user_姓名.upper(). 另一个例子是暴露变量first_name和last_name,用户可以创建一个名为“full_name=last”的新变量_姓名.upper()+','+第一个_姓名.upper()'. 这是使用输入框UI元素输入的。所以没有钩住程序。或者把它想象成一个类似excel的报表,我可以在其中创建一个新列来操作一些已经定义的变量。在
此应用程序的用户不是程序员。但是可以给他们一个例子列表来找到解决字符串操作的方法
但是,我的表达式将用于字符串的生成。比如“string3=string1+string2”。这里我想将string3的值设置为string1的值,并附加string2。
或“string1=string2.lower()”
我已经研究并得出结论,eval可以使用,但非常危险。据我所知,ast_literal_eval()不能与lower()等字符串操作方法一起使用
如本文所述Why does this string not work with ast.literal_eval
有什么建议吗?在