zoukankan      html  css  js  c++  java
  • 有关于python内置函数exec和eval一些见解笔记

    eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值.

    例:

    a=eval('1+1')
    
    print(a)
    
    >>>>2
    

      

    但是如果出现在函数内部字符串中进行赋值会抛出异常SyntaxError: invalid syntax

    a=eval('a=1+1')
    
    print(a)
    
    >>>>SyntaxError: invalid syntax
    

      

    很显然只能在外部进行给与变量名,内部不可以


    那么有没有可以进行再内部赋值的函数呢?

    有>exec是python3新版本出来不久,可以再内部进行赋值语句

     exec('a=1+1')
    2 print(a)
    >>>2

    但是在外部不可以进行赋值,刚好和eval函数相反,会返回none

    a =exec('1+1')
    b =exec('b=1+1')
    print(a)
    print(b)
    
    >>>none
    >>>none

    还有一些比较小众的方法,我是在知乎上看到的,忘记是在那个人哪里看到的,我展示问题来

    问题是,怎么让含有多个元素的list自动生成 变量名=[]

    解答

    a=['A','B','C']
    for i in a:
        exec('{}=[]' % i)
  • 相关阅读:
    MySQL性能优化的最佳经验
    18个网站SEO建议
    sql之left join、right join、inner join的区别
    PHP与MYSQL事务处理
    Firefox上Web开发工具库一览
    SphinxSE的安装
    python XML
    python yaml
    C语言文本处理
    Linux strace命令
  • 原文地址:https://www.cnblogs.com/zengxm/p/10726450.html
Copyright © 2011-2022 走看看