美文网首页Python知识锦集
Python 面向对象 11: 内建函数eval

Python 面向对象 11: 内建函数eval

作者: IIronMan | 来源:发表于2018-11-17 23:47 被阅读1次

一、eval() 函数 的介绍

  • eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果

    # 基本的数学计算
    In [1]: eval("1 + 1")
    Out[1]: 2
    
    # 字符串重复
    In [2]: eval("'*' * 10")
    Out[2]: '**********'
    
    # 将字符串转换成列表
    In [3]: type(eval("[1, 2, 3, 4, 5]"))
    Out[3]: list
    
    # 将字符串转换成字典
    In [4]: type(eval("{'name': 'xiaoming', 'age': 18}"))
    Out[4]: dict
    

二、不要滥用 eval

在开发时千万不要使用 eval 直接转换 input 的结果

如下:

__import__('os').system('ls')

等价代码

import os

os.system("终端命令")

举例:如果在 eval() 里面是 __import__('os').system('rm -r *') ,删除的话那就太可怕了,所以:千万不要使用 eval 直接转换 input 的结果

相关文章

网友评论

    本文标题:Python 面向对象 11: 内建函数eval

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