zoukankan      html  css  js  c++  java
  • Python中的exec、eval的区别

    通过exec可以执行动态Python代码,类似Javascript的eval功能;

    而Python中的eval函数可以计算Python表达式,并返回结果;

    (exec不返回结果,print(eval("…"))打印None);

    例如:

    >>> exec("print("hello, world")")
    
    hello, world
    >>> a = 1
    
    >>> exec("a = 2")
    
    >>> a
    
    2

    这里有个scope(命名空间,作用域)的概念,为了不破坏现在的scope,可以新建一个scope(一个字典)执行exec(Javascript没有此功能):

    >>> scope = {}
    
    >>> exec("a = 4", scope)
    
    >>> a
    
    2
    
    >>> scope['a']
    
    4
    
    >>> scope.keys()
    
    dict_keys(['a', '__builtins__'])

    __builtins__包含了所有的内建函数和值

  • 相关阅读:
    bzoj 5455
    hdu 6705
    hdu 6706
    斜率优化
    bzoj3672
    bzoj1367
    bzoj2118
    bzoj2337
    Codeforces 1077D Cutting Out(二分答案)
    Codeforces 1079C Playing Piano(记忆化搜索)
  • 原文地址:https://www.cnblogs.com/cymwill/p/7668898.html
Copyright © 2011-2022 走看看