C#函数式编程(乘风破浪的姐姐第三季)
908
2022-08-16
python中eval函数什么时候用才能发挥出它的效果呢?(python中eval函数怎么用)
Python解释器内置了许多函数,这意味着我们无需定义,始终可以用它们。下面按照函数的字母顺序,讨论一些常用的内建函数。eval作为Python的一个内置函数,在实际工作中能够让你事半功倍,但是如果使用不恰当,则有可能会导致你的系统遭到破坏。本文就带大家来看看怎么用它
eval()函数解析传给它的表达式,并在程序中运行Python表达式(代码)。举个例子:
>>> x = 1
>>> eval("x + 1") # 注意:"x + 1"是字符串
2
>>> eval("4 < 9")
True
>>> eval("'py' * 3")
'pypypy'
>>> eval("10 ** 2")
100
eval()函数不仅仅能运行简单表达式,还能调用函数,使用方法等等:
>>> eval("abs(-11)") # 计算-11的绝对值
11
>>> eval('"hello".upper()') # 把字符串'hello'全变成大写字母
'HELLO'
>>> import os
>>> eval('os.getcwd()') # 获取当前的工作目录
'/home/thepythonguru'
但是需要注意的是eval()仅适用于表达式,尝试传递语句会导致语法错误:
>>> eval('a = 1') # 赋值语句
Traceback (most recent call last):
File "", line 1, in
File "", line 1
a = 1
^
SyntaxError: invalid syntax
>>> eval('import re') # 导入语句
Traceback (most recent call last):
File "", line 1, in
File "", line 1
import re
^
SyntaxError: invalid syntax
此外,使用eval()语句应该十分小心,永远不要将不受信任的源直接传递给eval()。 因为恶意用户很容易对您的系统造成破坏。 例如:
>>> eval(input()) # eval()将执行用户输入的代码
用户输入以下代码就能从系统中删除所有文件:
os.system("RM -RF /")
# 上面输入相当于执行:
>>> eval('os.system("RM -RF /")')
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~