编写一个循环代码,采用先前定义的实例并创建新实例

writing a recurring code that takes previous defined instance and creates new one

我必须执行如下操作。我有一个实例 v1,从那以后,我必须通过 运行 某些函数以重复的方式创建其他实例。

v2 = vclass.makesomething(v1,a).attribute1()
v3 = vclass.makesomething(v2,a).attribute1()
v4 = vclass.makesomething(v3,a).attribute1()
.
.
.

我唯一想到的是使用 v+str(i) 之类的变量名称更改,但这是解决问题的糟糕方法。有没有办法为此创建一个循环代码?

可能是我问题措辞不好,不知道该怎么表达问题。

我发现的第二种方法与@Duck 建议的方法一起工作,

vtemplist = [vertex1]
for i in range(number_of_instances_needed)):
    vtemplist.append(vclass.makesomething(vtemplist[-1],a).attribute1())
def recur(v, times):
    if (times != 0):
        v = vclass.makesomething(v,a).attribute1()
        return recur(v, times-1)
    return v

现在你可以调用 recur 初始值 v 和你想要递归的次数。

编辑:我假设您只对最后一个实例感兴趣。如果没有,您可以使用以下内容,这将 return 一个包含 v 个对象的列表。

def recur(v, times, lst=[]):
    if (times != 0):
        v = vclass.makesomething(v,a).attribute1()
        lst.append(v)
        return recur(v, times-1, lst)
    return lst