eval函数记录

今天有个小程序想要在函数名列表中调用相应的函数处理,却怎么运行不了。初始代码如下:

#coding:utf8
def h1():
    print ‘函数1‘
def h2():
    print ‘函数2‘
if __name__ == ‘__main__‘:
    list1 = [‘h1‘,‘h2‘]
    for name in list1:
        name()

其实这程序看起来就有点不对劲,最后查了查应该把最后的name上加上eval()函数

for name in list1:
    eval(name)()

这样才正常调用了函数。总结一下:

eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。

如 eval(‘1+2‘) 返回 3

这样就好理解了。

  

eval函数记录

时间: 2024-10-30 15:30:23

eval函数记录的相关文章

JavaScript eval() 函数的用法

定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 返回值 通过计算 string 得到的值(如果有的话). 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回.因此请不要为 eval() 函数传递 String 对象来作为参数. 如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常. 抛出 如

如何在前端模版引擎开发中避免使用eval函数

前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用.于是根据自己对模版引擎的理解,定义自己的模版格式,然后,根据自己定义的格式,编写处理函数,将模版标签中的字符串,解析成可执行的字符串,然后再用eval函数执行该可执行的字符串. 然后问题就出现了!eval等价于evil! 为什么呢?各大js权威书籍上都不提倡使用eval.下面我详细的解释一下为什么不提倡. 首先,大家需要知道,js并不是一门解释型语言.它和其他大家熟知的编程语言(c,java,c++)一样,是编译型语言.但是

微信小程序开发之不能使用eval函数的问题

一 eval函数问题 JavaScript中的eval函数是颇受开发者争议的问题之一,问题主要在于其可能导致的不安全性.有关此方面问题,在此不再赘述,读者可能很容易地浏览到许多介绍性文章. 但是,eval函数的优点也是很明显的.例如,使用JS编写一个计算器程序,在遇到"2+1-3*5"这样的字符串时,使用eval就可以很容易地计算出,类似如: var s="2+1-3*5"; console.log(eval(s)); 二 微信小程序练手遇到问题 (1)微信小程序环

js eval函数使用,js对象和字符串互转.

JavaScript eval() 函数  JavaScript 全局函数 定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. <!DOCTYPE html> <ht

关于eval()函数处理后台返回的json数据

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次.这种方式也适合以普通javascipt方式获取json对象,以下举例说明: var dataObj=eval("("+data+")");//转换为json对象 为什么要 eval这里要添加 ("("+data+")")呢? 原因在于:eval本身的问题

js eval()函数

定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string); eval()函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值. 实际用法举例: 1.利用字符串创建变量: var abc=20; var i="ab"; alert(i+&

Ajax中的eval函数的用法

eval的定义和使用: Eval它是用来计算某个字符串,并且执行其中的JavaScript代码. 语法: 1) eval函数接受一个string这个参数,并且这个参数是必须的,这个参数就是要计算的这个字符串.它里面可以函数含有JavaScript的表达式,或者要执行的语句. eval(string). 2) 那,这个既然是函数,就有可能有返回值.它的返回值是:如果这个string参数有返回值的话,那这个函数就原样返回这个string执行完毕的结果. 3) 有一个地方值得注意,这个eval函数只接

如何用eval()函数在局部函数内改变全局变量

两种方式作用是一样的,第一种更直接 var Obj={ func:function(code){ window.eval(code); } } var s='global'; // 全局变量 function demo3(){ // 局部空间 window.eval('var s="local"'); // 第一种方式(直接) Obj.func("var s='sssss'"); // 第二种方式(间接) } demo3(); alert(s); //->'s

JavaScript当中的eval函数

eval函数 eval函数接收一个由JavaScript语句组成的字符串,并且返回字符串中最后一条语句的返回值,如果最后一条语句没有返回值,那么eval函数返回undefined.如果传递给eval函数的不是字符串,那么传递什么,eval就返回什么. 调用eval函数的三种情况 当调用eval函数时,JavaScript会创建新的执行环境,总共有三种情形: 1 直接调用 直接调用时,eval函数相关的执行环境属性ThisBinding,LexicalEnvironment,VariableEnv