草庐IT

Hap-Eval

全部标签

python - 为什么必须将 "exec"(而不是 "eval")用于 Python 导入语句?

我正在尝试使用Jython从Java中运行一段Python。如果我使用exec语句导入,一切正常。PythonInterpreterpi=newPythonInterpreter();pi.exec("importre");PythonObjecto=pi.eval("re.match('abc','abc123')");//returnsaMatchObjecto=pi.eval("re.match('abc','def123')");//returnsPy.None但是,如果我尝试将这两条线结合起来,一切都会变得一团糟。这:PythonInterpreterpi=newPython

python - 为什么 eval 找不到在外部函数中定义的变量?

我知道eval()的使用通常意味着错误的代码,但我偶然发现内部函数中的eval()函数有一个奇怪的行为,我无法理解。如果我们写:deff(a):defg():print(eval('a'))returng()在这种情况下运行f(1)会产生一个NameError,声称a没有定义。但是,如果我们定义deff(a):defg():b=a+1print(eval('a'))returng()然后运行​​f(1)打印1。局部变量和全局变量发生了一些我不太理解的事情。a只是g()中的一个局部变量,当它被“用于”某事时?这是怎么回事? 最佳答案

python - tensorflow 中的 eval() 和 run()

我指的是tensorflow提供的DeepMNISTforExperts教程。我在TrainandEvaluate有问题该教程的一部分。他们在那里给出了如下示例代码。cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y_conv),reduction_indices=[1]))train_step=tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)correct_prediction=tf.equal(tf.argmax(y_conv,1),tf.argmax(y_,1))a

python - eval 调用 lambda 看不到自己

下面是一段说明问题本质的简单代码:classtest:def__init__(self):self.var=0defset(self,val):self.var=valprinteval('map(lambdax:self.var*x,[1,2,3,4,5])')f=test()f.set(10)它说NameError:globalname'self'isnotdefined我知道很多人不喜欢eval,但就我而言,我必须使用它,因为它会根据用户在程序执行期间输入的字符串执行数学公式。非常感谢任何建议!提前致谢! 最佳答案 尝试:ev

python - Python 中 "eval"中捕获的变量

我无法理解Python中“eval()”和“exec”的语义。(此问题中的所有代码在Python2.7.8和Python3.4.2中的行为方式相同)。documentation对于“评估”说:Ifboth[localsandglobals]areomitted,theexpressionisexecutedintheenvironmentwhereeval()iscalled.“exec”有类似的语言。我显然不理解这句话,因为我希望下面程序定义的四个函数做同样的事情。defh(x):ls=locals()exec('defi(y):return(w,x,y)',globals(),ls

asp.net - 如何使用 Eval 更改 TemplateField 中的颜色

我有一个包含许多TemplateField的Gridview。我想要每一个在我的html源代码中等于我数据库中保存的颜色我尝试位于下方但无法正常工作的代码,它给我一个标签内用我的颜色但是但是不出现在浏览器上'>C#代码工作publicColorConvertFromHexToColor(stringhex){stringcolorcode=hex;intargb=Int32.Parse(colorcode.Replace("#",""),NumberStyles.HexNumber);Colorclr=Color.FromArgb(argb);returnclr;}这是我浏览器中的源h

docker - 完成 Docker for Windows 教程时未找到 Eval 命令

Eval命令在Windows中不存在。DockerforWindows教程第6步说要运行此命令:C:\Users\mary>eval"$(docker-machineenvmy-default)"这是教程中的错误还是我没有正确安装某些东西?我可以从GitBash很好地运行这个命令,但我很好奇为什么Docker教程说要从Windows命令提示符运行这个命令。这里是教程的链接https://docs.docker.com/v1.8/installation/windows/#using-docker-from-windows-command-line-prompt-cmd-exe

docker - 完成 Docker for Windows 教程时未找到 Eval 命令

Eval命令在Windows中不存在。DockerforWindows教程第6步说要运行此命令:C:\Users\mary>eval"$(docker-machineenvmy-default)"这是教程中的错误还是我没有正确安装某些东西?我可以从GitBash很好地运行这个命令,但我很好奇为什么Docker教程说要从Windows命令提示符运行这个命令。这里是教程的链接https://docs.docker.com/v1.8/installation/windows/#using-docker-from-windows-command-line-prompt-cmd-exe

lua - 使用 LIMIT 选项调用 ZRANGEBYSCORE 的 Redis EVAL 语法

如何将LIMIT选项传递给EVALRedis命令调用ZRANGEBYSCORE命令?对于像SET这样的简单命令,语法如下eval"returnredis.call('set',KEYS[1],'bar')"1foo在我的例子中,LUA脚本类似于eval"returnredis.call('ZRANGEBYSCORE',KEYS[1],ARGV[1],ARGV[2])"2foobar0+inf但我如何才能将值传递给此调用中的LIMIT选项? 最佳答案 假设LIMIT为123(偏移量)和456(计数),以下内容适用于:eval"retu

redis - EVAL 与 WATCH/GET/MULTI/EXEC

我读过有关EVAL的文档,其中指出“Redis保证脚本以原子方式执行:在执行脚本时不会执行其他脚本或Redis命令。”我还阅读了有关使用WATCH/GET/MULTI/EXEC进行本质上是乐观锁定事务的内容。我现在有一个关于这两个构造之间并发性差异的问题。在我看来,如果我想读取多个键,进行冗长的计算(例如,解析几百KB的json,然后做出一些决定)然后写回结果,如果我使用EVAL我将阻止对redis数据库的所有请求,即使是那些与不属于我要与之交互的集合的键交互的请求。另一方面,如果我使用WATCH方法,我将需要构建重试逻辑,但如果我正在监视100万个key中的100个,我只需要担心其他