我有以下code
:
tmpVariable = completeVariableName[filedsValueCounter];
tmpValue = fieldsValue[fieldsName[fieldsNameCounter]];
print eval ("'%s = \"%s\";' % (tmpVariable, tmpValue)");
以上代码的输出为:
^{pr2}$
eval函数的下一行是:
print self.name
但它的输出是:
None
问题:我的问题在哪里?在
Tags:
eval
用于表达式,但赋值是一个语句。在但是在这里没有必要使用它。您应该使用
setattr
。在如果你想用替换来创建一个类的实例呢。在
像这样:
其思想是用特定的变量生成大量实例
对于在Python中执行语句(例如问题中的赋值),必须使用
exec()
,因为eval()
只适用于表达式(计算值为值的东西)。无论如何,在这种情况下,您不需要计算字符串,setattr
是一种方法:上面这段代码的效果和这段代码的效果一样:
^{pr2}$相关问题 更多 >
编程相关推荐