когда я возвращаю объект пользовательского класса в пользовательской функции, он назначает весь класс атрибуту - PullRequest
0 голосов
/ 12 марта 2019

Привет! Мне нужно вернуть объект класса Complete в конце функции. Я начал с этого класса:

import NumPy as np

class Cromo(object):
    def __init__(self, Secuencia=np.ndarray, Ruta=np.ndarray):
        self.Sec=Secuencia
        self.Ruta=Ruta

, а также имеют эту функцию:

def CromosomaOpen(): 
    O=int(estacionesopen)
    T=int(trabajos)
    Route=np.zeros((O, T))
    Secu=np.zeros(T)
    for i in range(T):
        perm=np.random.permutation(range(1, O+1, 1))
        for j in range(O):
            Route[j,i]=perm[j]
    Secu=np.random.permutation(range(1, T+1, 1))
    hola=Cromo(Secuencia=Secu, Ruta=Route)
    return hola

и запустить его

Individuo=CromosomaOpen()

Когда он запускается, он достигает строки перед строкой «return» в функции «CromosomaOpen» и отлично работает. Он создает объект Cromo с трибутами "Sec" и "Ruta" и массивами Numpy. Но, когда он достигает строки возврата, он снова запускает функцию init в Cromo, и в конце, когда я проверяю «Individualido», присваиваются массивы «Secuencia» и «Ruta» Атрибут «Sec».

Примечание. Мне нужно, чтобы объект Cromo и функция CromosomaOpen были независимы по определенным причинам в логике алгоритма и от того, что я использую платформу DEAP.

Не знаю, что я делаю не так. Я довольно новый в питоне. Спасибо

...