美文网首页
python eval()方法

python eval()方法

作者: 隐墨留白 | 来源:发表于2018-12-03 18:10 被阅读0次

面试中的一道题:
修改函数,使之输入func_2能运行,并且输出结果为123。

def func_1(a):
    return a()
def func_2():
    return '123'
b = input('>>')
print(func_1(b))

分析一下,输入func_2,b就被赋值为'func_2'。然后执行func_1函数,将字符串'func_2'传入,在执行a()。但是'func_2'是个字符串类型,如何才能执行func_2()函数呢?这里就用到了eval()方法。
eval() 将字符串str当成有效的表达式来求值并返回计算结果。

def func_1(a):
    print(type(a))
    return a()
def func_2():
    return '123'
b = eval(input('>>'))
print(func_1(b))

#未添加eval()函数前的结果
>>func_2
Traceback (most recent call last):
<class 'str'>
 File "xxxxxx", line 7, in func_1
print(func_1(b))
File "xxxxxx", line 3, in func_1
return a()
TypeError: 'str' object is not callable


#添加eval()函数后的结果
>>func_2
<class 'function'>     #变成了一个函数
123

小例子:

def func():
    print('aaaaaaa')
func()
print(type(func))

#运行结果
aaaaaaa
<class 'function'>

Process finished with exit code 0

再举几个eval()的例子:

print(eval('4 + 5'))
#9

n = 1
print(eval('n + 1'))
#2

a = 1
p = {'a':20}
print(eval('a+1',p))
#21

相关文章

  • python eval()方法将字符串转换为元组

    python eval()方法将字符串转换为元组 从文件中读取如下数据: 简单粗暴的方法:eval(line)就...

  • python eval()方法

    面试中的一道题:修改函数,使之输入func_2能运行,并且输出结果为123。 分析一下,输入func_2,b就被赋...

  • 7、运行时求值

    用eval()方法进行求值 eval()方法将执行传入的代码的字符串,并在调用eval()方法的作用域内进行代码求...

  • Tkinter实现计算器

    环境:python2.7 目的:熟悉TKinter的使用 主要方法:将按下的字符写入lsit中,通过eval()函...

  • 08.eval、exec和其他函数

    eval、exec和其他函数 一、eval函数 1). eval函数的功能 将字符串形式的变量转换成Python的...

  • python中eval的用法

    python中eval的用法 eval(<字符串>) 能够以Python表达式的方式解析并执行字符串,并将返回结果...

  • Python语法之eval()函数

    eval()函数 python中的eval()函数就是实现list、dict、tuple与str之间的转化;str...

  • Python:eval()

    eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。 so,结合ma...

  • python学习-re模块-Python3 正则表达式-菜鸟教程

    菜鸟教程:http://www.runoob.com/python/python-func-eval.html正则...

  • ajax解析json

    1:eval() eval()方法解析的时候不会判断字符串是否合法 js方法也会被执行:例如: var jsonO...

网友评论

      本文标题:python eval()方法

      本文链接:https://www.haomeiwen.com/subject/ydcucqtx.html