如何在Python中多次对对象执行转换?

如何在Python中多次对对象执行转换?,python,object,translation,Python,Object,Translation,所以我很难想出解决这个问题的办法。我想要一个对象,用户输入一个数字。该数字确定对象在恒定距离和恒定方向上平移的次数。 现在我将给出一个问题的例子。用户输入数字2。软件获取对象并创建一个经过一定距离翻译的副本。但是用户希望这种情况发生2次,因此软件在一定距离上翻译副本,因此现在有原始对象、对象的翻译副本和对象副本的翻译副本。现在我担心软件可能会将输入解释为复制两份原始对象并翻译对象。现在,平移的对象位于同一位置,而不是以恒定的距离分隔所有对象。这个问题有解决方案吗?因为您没有给出所有的细节,我假设

所以我很难想出解决这个问题的办法。我想要一个对象,用户输入一个数字。该数字确定对象在恒定距离和恒定方向上平移的次数。

现在我将给出一个问题的例子。用户输入数字2。软件获取对象并创建一个经过一定距离翻译的副本。但是用户希望这种情况发生2次,因此软件在一定距离上翻译副本,因此现在有原始对象、对象的翻译副本和对象副本的翻译副本。现在我担心软件可能会将输入解释为复制两份原始对象并翻译对象。现在,平移的对象位于同一位置,而不是以恒定的距离分隔所有对象。这个问题有解决方案吗?

因为您没有给出所有的细节,我假设有一个函数translate作为对象的一部分,将其转换为所需的量。基于此,快速思考一下它会是什么样子

def translate_n_times(n, distance, object):
    cur_object = object
    obj_list = []
    obj_list.append(object)
    for i in range(0,n):
        new_object = copy.deepcopy(cur_object)
        new_object.translate(distance)
        obj_list.append(new_object)
        cur_object = new_object
    return obj_list

它不是完美的,但它应该是你试图做什么的大纲。通过每次保留对对象的引用,您可以确保始终根据最后一个副本进行翻译。

所谓对象,我指的是一个现实世界中的对象,如可以向特定方向移动的球或原子。然后向我们展示代码。我们需要知道对象的方法。谢谢!这真的有助于我有一个问题,范围(0,n)中的I是什么意思?范围(0,n)中的I意味着这将在这个过程中迭代n次;第一次,我将等于0,然后是1,直到(n-1)。由于python没有传统的for循环,正如您在c中看到的那样,对于不在列表中迭代的for循环,通常采用这种形式。它与您编写的下一行代码有什么关系?这意味着在那里缩进的代码将运行n次。因此,它将始终从最近生成的对象平移。我建议您阅读,因为这对您来说似乎是一个新概念,掌握循环对于使用Python(或任何语言)编程非常重要。谢谢您的帮助。我刚刚开始使用python,现在仍在使用它。