Python: максимальная глубина рекурсии превышена при вызове объекта Python при вызове функции копирования

У меня есть классчастица который имеет некоторые параметры и атрибуты, как вы можете видеть ниже. Но когда он попадает в установщик функции для положения и выполняет функцию copy (), я получаю сообщение об ошибке:RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python, Я пробовал разные варианты, такие какDeepCopy (), или жеimport sys sys.setrecursionlimit (10000) , но никто из них не работал ... Кто-нибудь есть идеи? Это мой код:

def initCost(n):
    a = random.randint(0,10)              #gram.
    b = random.randint(0,5)             #price
    return [random.randint(0,a*b) for i in range(n)]

costs = initCost(10)

class Particle:
    def __init__(self, n, maxWeight):
        self.position = [random.randint(0,1) for i in range(n)]  #position
        self.velocity = [0 for i in range(n)]                    #velocity
        #self.fit = self.fitness(self.position)
        self.bp = self.position.copy()                           #best position
        self.bf = self.fit                                 #best fitness
        self.evaluate()

    def fit(self, x):
        fitt = 0
        for i in range(len(x)-1):
            if (x[i] == 1):
                fitt = fitt + costs[i]
        return fitt

    def evaluate(self):
        """ evaluates the particle """
        self.fitness = self.fit(self.position)

    @property
    def position(self):
        return self.position

    @property
    def bp(self):
        return self.bp

    @property
    def bf(self):
        return self.bf

    @position.setter
    def position(self, newPosition):
        self.position = newPosition.copy()
        #self.position = newPosition[:]
        self.evaluate()
        # automatic update of particle's memory
        if (self.fit<self.bf):
            self.bp = self.position
            self.bf  = self.fit

Ответы на вопрос(1)

Ваш ответ на вопрос