python3如何使用exec在类中动态生成和调用变量?

我需要进行大量的线性规划求解,因此,我将使用pulp库求解的代码写入了一个类,希望通过传递参数调用这个类进行求解。但使用pulp过程中,需要定义数量未知的变量并调用,我使用了exec函数进行变量生成,但出现错误,就好像exec内的代码从未执行一样。我找了大量资料,好像是命名空间的问题。

我的代码是这样的:

class LinearProgramming(object):

    def __init__(self, data):
        self.data = data


    def pulp(self):
        
        ...
        
        prob = LpProblem('', LpMinimize)
        # 建立符合allotLines长度的变量列表
                variable_gather = []
                for i in range(1, len(allotLines) + 1):
                    exec('x%s = LpVariable("x%s", lowBound = 0)' % (i, i))
                    exec('variable_gather.append(x%s)' % i)

        ...

因为allotLines变量是未知的,所以需要的x1, x2, x3, ...xn数量也是未知的,文档中使用的方法不可用。

文档中推荐locals和globals方法总是需要进行变量申明才可以进一步操作变量,但变量数量未知的话,不好进行变量申明。求教大神如何解决?

 

 

如果没有n4 += 1这一行,代码执行正确,但我需要对这些生成的变量进行操作。