Python 编写一个循环代码,该代码接受以前定义的实例并创建新实例

Python 编写一个循环代码,该代码接受以前定义的实例并创建新实例,python,recurring,Python,Recurring,我必须做下面这样的事情。我有一个实例v1,从那以后,我必须通过循环运行某些函数来创建其他实例 v2 = vclass.makesomething(v1,a).attribute1() v3 = vclass.makesomething(v2,a).attribute1() v4 = vclass.makesomething(v3,a).attribute1() . . . 我唯一想到的是使用变量名称的更改,比如使用v+str(I),但这是解决问题的一个糟糕方法。有没有办法为此创建一个循环代码

我必须做下面这样的事情。我有一个实例
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())
现在,您可以使用
v
的初始值调用
recur
,以及您希望递归的次数

编辑:我假设你只对最后一个例子感兴趣。如果没有,您可以使用以下命令,它将返回
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

你知道你要多久做一次吗?我认为最好的方法是在范围内(开始、停止、步骤)为I设置一个
循环,在这里您将属性分配给一个数组。我不熟悉python,所以可能有一些限制我不知道。嘿@mykepwnage我试着按照你建议的思路做一些事情,我发现上面的技术很管用:)嘿@Duck这很管用。谢谢你的主意。它尽可能的简单,但也很优雅:)我不是来自CS背景,递归的想法让我觉得很糟糕。
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