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

一、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 的结果

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 6,067评论 2 16
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,684评论 0 13
  • 刚搬家过来一周后,对面的邻居便搬走了。搬走当天便有人过来看房子了,是一对情侣,刚好我在家,我说,两个人住单间太挤了...
    余七青阅读 163评论 0 1
  • 第二百零三章 “战神”宋小开 宋小开心想:“看来自己傍上的还真是货真价实的神仙,要不然怎么会这么有面子呢?嘿,真应...
    诗人夏二狗阅读 217评论 0 0

友情链接更多精彩内容