不知道大家如何,python中的eval()内置函数我几乎没怎么用到过,但是也是要了解一下的,下面给大家介绍一下我发现的几种用法,如果还有其他的用法希望大家能评论分享一下
1.传入python的几种数据类型的字符串,返回相应的数据类型对象
a = eval("123")
print("a is", type(a))
b = eval('["a",1,"b"]')
print("b is", type(b))
c = eval('{"a":1,"b":2}')
print("c is", type(c))
d = eval('("a",1,2,3)')
print("d is", type(d))
e = eval('{"a","b","c",1,2}')
print("e is", type(e))
结果:
注意:因为eval()函数本身就是根据字符串来做判断识别成其他的数据格式,所以不会把字符串识别成string类,传入无法识别的字符串反而会报错,
f = eval("hallo")
print("f is", type(f))
结果:
2.进行一些python数据类型的运算(其实就是第一部分中的数据类型的数学运算)
# 数字类型的运算符都支持如(加减乘除,取余,地板除,次方)
a = eval("8//3")
print("a:", a)
# 列表支持的运算符都支持如(加)
b = eval('[0,1,2]+[3,4,"a"]')
print("b:", b)
# 集合支持的运算符都支持如(交,并,补)
c = eval('{1,2,3}&{3,4,5}')
print("c:", c)
# 元祖支持的运算符如(加)
d = eval('(1,2,3)+(1,2,3)')
print("d:", d)
结果:
3.执行一些定义过的或者自带的函数或者方法
# 执行python内置方法
eval('print("我要找富婆,不想努力了")')
# 执行自己定义过的方法
def print_xjc(name):
print("{}你梦没做醒?,数据测完没".format(name))
eval('print_xjc("xjc")')
结果:
以上是我发现的eval()函数的用法,写了这么些,其实我还是没有发现在开发中能用上这个内置函数的地方,有人在生产中用到过吗,望告知场景啊