在我的matlab m文件中,我使用一些逻辑(字符串concat)来构建这样的变量:
c = 'CalcPrediction(1,10)'
Run Code Online (Sandbox Code Playgroud)
这意味着我有一个字符串,它是一个函数和一些参数.我该怎么做那个函数调用?
尝试运行(c)会导致:
>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.
Run Code Online (Sandbox Code Playgroud)
注意:如果没有参数,run(c)可以正常工作.例如c ='CalcPrediction'; 运行(C);
我想计算在我们的javascript应用程序中对eval进行的调用次数.
我想出了以下内容,但它会产生错误.这些错误很难跟踪,而且我对应用程序的了解有限.
你能告诉我的代码有什么问题吗?
increment = function (){
var me = arguments.callee;
if (!me.count) me.count = 0;
return ++me.count;
}
var oldEval = eval;
eval = function eval(string){
console.log('eval number ', increment());
return oldEval(string);
}
Run Code Online (Sandbox Code Playgroud)
或者你知道另一种计算eval使用的方法吗?
谢谢
奥利维尔
我一直在玩,并且搜索了一下,但我无法弄清楚这一点.我在JavaScript对象中有一个伪私有函数,需要通过eval调用(因为函数的名称是动态构建的).但是,函数被闭包隐藏在全局范围内,我无法弄清楚如何使用eval()来引用它.
例如:
var myObject = function(){
var privateFunctionNeedsToBeCalled = function() {
alert('gets here');
};
return {
publicFunction: function(firstPart, SecondPart) {
var functionCallString = firstPart + secondPart + '()';
eval(functionCallString);
}
}
}();
myObject.publicFunction('privateFunctionNeeds', 'ToBeCalled');
Run Code Online (Sandbox Code Playgroud)
我知道这个例子看起来很傻但我想保持简单.有任何想法吗?
evalObjective-C中是否存在类似Javascript,Ruby,PHP或Python的方法?
我使用PhoneGap,我想创建一个特定于我的每个项目的窗口,我不能使用HTML文件.所以我想从JavaScript调用一个方法,其中一个参数是Objective-C代码,需要解释.
这是否接近可以接受的东西?我需要为每个HTML标记创建一个函数,并且需要将它们定义为以后在Heredoc字符串中使用.到目前为止这是我的代码.
<?php
$tags = array (h1, h2, h3, b, i);
foreach ($tags as $key => $value)
{
eval ('function '.$value.' ($str) { return "<'.$value.'>$str</'.$value.'>"; }');
}
Run Code Online (Sandbox Code Playgroud)
这基本上处理了关于heredoc中的函数的Heredoc问题.一个简单的例子:
<<<example
<h1>This is ordinary HTML</h1>
{$h1('This is HTML via. PHP')}
example;
Run Code Online (Sandbox Code Playgroud)
我心里都做了所有的代码,所以如果它们包含任何错误,请不要惊讶.我还没有执行eval-function,但它看起来还不错.无论如何,我的问题是:这是好的,还是更好的做法:
function h1 ($str) { return ...; }
function h2 ($str) { return ...; }
function h3 ($str) { return ...; }
function b ($str) { return ...; }
function i ($str) { return ...; }
Run Code Online (Sandbox Code Playgroud)
等等 ..?
如何创建一个从变量中评估属性名称的对象?
例如:
我有变量 myString = 'aString'
我想创建对象:
var obj = {
aString : "value";
}
Run Code Online (Sandbox Code Playgroud)
我想用变量myString来创建它.
我提出的唯一解决方案是这样的:
var string = '{"' + myString + '": value }';
var obj = $.parseJSON(string);
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这更有效,更清洁?
我正在阅读一些关于不在python代码中使用exec或eval的问题.
我目前有一个基于金字塔的python web程序,它从表单中获取一些变量并调用一个函数.这个函数的所有参数或者是可选的,因此我或多或少都是这样做的
command = 'function_to_be_called ('
if optional_variable_in_form in request.params :
command += 'optional_variable=optional_variable_in_form'
command += ')'
i = eval (command)
Run Code Online (Sandbox Code Playgroud)
我正在尝试增强我的应用程序,我正在尝试用其他东西替换eval.我找到了这个答案,作者建议通过引用传递字典而不是使用我的解决方案.
所以我的问题是:
我正在创建一个将选项存储在txt文件中的程序,我尝试了几行不同的操作,但到目前为止,我认为an eval是最好的。
我在文件中得到此信息:
colordefondo = "#abcdef"
Run Code Online (Sandbox Code Playgroud)
我eval在程序中得到了这个:
for line in open("filename.txt", "r"):
eval(line)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试代码时,它给了我这个错误:
Traceback (most recent call last):
File "D:\project-sae\Sae.py", line 25, in <module>
eval(line)
File "<string>", line 1
colordefondo = "#abcdef"
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么?而且,如果有人知道从txt文件加载和存储几个选项的值的更好方法,那就太好了。不过,我的问题是为什么eval失败了,我对eval工作原理的了解似乎是错误的,而且我也不知道为什么,以前曾多次使用它,但从未从文件中获取过。
我想dict y1~y10[name]用给定的列表来评估以下内容.
我知道使用eval(self.y$i[name]) = value是错误的,但我应该如何在python中执行此操作?
class excel:
def __init__(self):
self.base_year = 2004
self.y1 = {'year':self.base_year}
self.y2 = {'year':self.base_year + 1}
self.y3 = {'year':self.base_year + 2}
self.y4 = {'year':self.base_year + 3}
self.y5 = {'year':self.base_year + 4}
self.y6 = {'year':self.base_year + 5}
self.y7 = {'year':self.base_year + 6}
self.y8 = {'year':self.base_year + 7}
self.y9 = {'year':self.base_year + 8}
self.y10 = {'year':self.base_year + 9}
def value(self, name, value_list):
for value, i in value_list, range(1, 10):
eval(self.y$i[name]) = value
list = …Run Code Online (Sandbox Code Playgroud) 我看到了这个问题的几个变种,但并没有真正找到一个可靠的答案.
所以我有一系列的URL.我想循环遍历该数组,对于每个单独的URL,我将创建一个类WebPages的实例.
因此,如果数组URLS中有5个URL,那么我将创建5个WebPages对象.我尝试使用eval()来做到这一点,但很快就知道eval生成的实例有一个非常局部的范围,之后我不能使用那些WebPage对象.
string_to_eval = @urls.map{|x| "webpage#{urls.index(x)} = WebPage.new('# {x}')"}.join(';')
puts string_to_eval
eval(string_to_eval)
Run Code Online (Sandbox Code Playgroud)
String_to_eval打印出来:
webpage0 = WebPage.new('http://www.google.com');
webpage1 = WebPage.new('http://www.yahoo.com');
webpage2 = WebPage.new('http://www.amazon.com');
webpage3 = WebPage.new('http://www.ebay.com')
Run Code Online (Sandbox Code Playgroud)
如何在Ruby中循环的每次迭代中创建一个对象?有没有解决的办法?