使用字符串作为变量名称

时间:2014-04-13 04:41:46

标签: python

我收集了很多表格参数。而不是写这样的重复行:

def post(self):
    var1 = self.request.get('var1')
    var2 = self.request.get('var2')
    var3 = self.request.get('var3')
    var4 = self.request.get('var4')
        ...

...有没有办法把它放到循环中?也许是这样的:

def post(self):
    var_list = ['var1', 'var2', 'var3', 'var4', ...]
    for var in var_list:
        var = self.request.get(var)

我的循环的问题是var是一个字符串,我需要它实际上是最后一行的变量名。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您所写的内容将有效,但您将覆盖作业中的值,因为您重复了var。而是在列表中收集结果:

def post(self):
    var_list = ['var1', 'var2']
    result_list = []
    for var in var_list:
        result_list.append(self.request.get(var))
    return result_list # etc.

您可以使用列表解析进一步简化它:

def post(self):
    return [self.request.get(var) for var in ['var1', 'var2']]

答案 1 :(得分:0)

为什么不使用列表:

def post(self):
    vars_list = []
    var_list = ['var'+str(i) for i in range(1,10)]
    for var in var_list:
        vars_list.append(self.request.get(var))

答案 2 :(得分:0)

定义MAX_VAR_NUM并使用以下内容:

MAX_VAR_NUM=1000
var = [self.request.get("var"+str(i)) for i in xrange(1,MAX_VAR_NUM)]

您可以添加MAX_VAR_NUM作为对象实例的属性:

var = [self.request.get("var"+str(i)) for i in xrange(1,self.max_var_num)]