我只是好奇这是否存在风险,我想不出用户可能导致这种情况发生的方法......但这似乎令人担忧。
>>> import ast
>>> help(ast.literal_eval)
Help on function literal_eval in module ast:
literal_eval(node_or_string)
Safely evaluate an expression node or a string containing a Python
expression. The string or node provided may only consist of the following
Python literal structures: strings, numbers, tuples, lists, dicts, booleans,
and None.
Run Code Online (Sandbox Code Playgroud)
ast.literal_eval(f'{os.remove("dontdelete.txt")-hello-world}')将执行文件删除。这是否存在用于针对应用程序的风险?什么是
“安全地评估表达式节点”
意思是?
我试图解决这个小挑战:
您想要一个defaultdict,每次查找不存在的键(即计数器)时使用一个不同的值;1表示第一个不存在的密钥,2表示第二个,等等。
我能够像这样解决它:
from collections import defaultdict
def f(a=[0]):
a[0]+=1
return a[0]
s=defaultdict(f)
Run Code Online (Sandbox Code Playgroud)
好处是尝试一行完成此操作。
s=defaultdict(lambda a=[0]: (a[0]+=1))
Run Code Online (Sandbox Code Playgroud)
SyntaxError:语法无效_________ ^
有没有办法在lambda中做到这一点?更新可变的默认arg并返回?
我正在尝试使用 Should Contain
我不明白为什么没有" "in'\r \r'
任何想法我缺少什么?
>>> x='\r \r'
>>> " " in x
True
Run Code Online (Sandbox Code Playgroud)