python中eval函数什么时候用才能发挥出它的效果呢?(python中eval函数怎么用)

网友投稿 352 2022-06-14


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小时内删除侵权内容。

上一篇:用python做Roguelike 游戏《骰子骑士》(用python做一个小游戏)
下一篇:python中eval是什么函数,细数它的好与坏(eval函数的作用是什么python)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~