zoukankan      html  css  js  c++  java
  • PYthon第十三天

    内置函数 eval

    eval 执行字符串表示的代码,并把结果返回

    1 i1 = eval('12+22')     两个数值相加
    2 print(i1, type(i1))    34 <class 'int'>
    3 n = 2
    4 i2 = eval('n+3')       变量的值和数值相加
    5 print(i2, type(i2))    5 <class 'int'>
    6 eval('print(123)')     123     打印语句
    7 s1 = eval("'a'+'b'")   两个字符串相加
    8 print(s1, type(s1))     ab <class 'str'>

     下面是使用报错的例子

    1 s1 = eval('abc')
    2 print(s1)

    看下报错的原因:

    eval, 把 'abc' 解读成 一个变量,

    而程序中却没有这个变量, 所以报错.

    因此,可以发现, 为什么 eval 可以执行 字符串'n + 2' 的代码

    正确例子如下:

    1 abc = {'a': 1}
    2 s1 = eval('abc')
    3 print(s1, type(s1))    {'a': 1} <class 'dict'>

    可以把 abc 这个变量, 换成可以赋值的任何元素, 甚或是函数名

    1 def foo():
    2     print('123')
    3 
    4 
    5 abc = foo
    6 s1 = eval('abc')
    7 print(s1, type(s1))
    8 
    9 s1()

    执行结果如下:

    1 <function foo at 0x10dd16ea0> <class 'function'>
    2 123
  • 相关阅读:
    iOS 整理面试题(上)
    2021年十大白马名单
    RabbitMQ:消息重复消费
    RabbitMQ:保证消息的顺序性
    RabbitMQ:保证消息的可靠性传输
    AWS S3 大文件分片上传
    rebase 用法小结
    Flask at scale
    MySQL分区
    动态规划示例题
  • 原文地址:https://www.cnblogs.com/golzn2018/p/9511697.html
Copyright © 2011-2022 走看看