missing 1 required positional argument: - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: missing 1 required positional argument: (/thread-17567.html) |
missing 1 required positional argument: - psosmol - Apr-16-2019 Hello, I have for files AllOnesGA.py with the main(), GeneticAlgorithm.py,Population.py and Individual.py My problem is that when I try to run the program with pycharm an error message happens: in line 4: population = genetic_algorithm.GeneticAlgorithm.initPopulation(50) TypeError: initPopulation() missing 1 required positional argument: 'chromosomeLength' Thanks de code is: import genetic_algorithm def main(): ga = genetic_algorithm.GeneticAlgorithm(100, 0.001, 0.95, 0) population = genetic_algorithm.GeneticAlgorithm.initPopulation(50) ga.evalPopulation(population) generation = 1 while ga.isTerminationConditionMet(population) == false: print("Best solution", population.getFittest(0).toString()) population = ga.crossoverPopulation(population) population = ga.mutatePopulation(population) ga.evalPopulation(population) generation += 1 print("Found solution in ", generation, " generations") print("Best solution:", population.getFittest(0).toString()) if __name__ == "__main__": main()and the file genetic_algorithm.py is: import random import population_file import individual_file class GeneticAlgorithm: def __init__(self, populationSize, mutationRate, crossoverRate, elitismCount): self.populationSize=populationSize self.mutationRate=mutationRate self.crossoverRate=crossoverRate self.elitismCount=elitismCount def initPopulation(self,chromosomeLength): population = population_file(self.populationSize, self.chromosomeLength) return population def calcFitness(self, individual): correctGenes = 0 for geneIndex in range (0,individual.getChomosomeLength()): if individual.getGene(geneIndex)==1: correctGenes +=1 fitness= correctGenes/individual.getChomosomeLength() individual.setFitness(fitness) return fitness ... RE: missing 1 required positional argument: - Ecniv - Apr-16-2019 I think its because you put self.chromosomeLength instead of just chromosomeLength; as you are passing the variable not getting it from the self object... RE: missing 1 required positional argument: - Larz60+ - Apr-16-2019 change line 4 to read: population = ga.initPopulation(50)
RE: missing 1 required positional argument: - psosmol - Apr-16-2019 If I write: population = ga.initPopulation(50) in line 4 the error is: File "/home/psm/PycharmProjects/AllOnesGA/AllOnesGA.py", line 4, in main population = ga.initPopulation(50) File "/home/psm/PycharmProjects/AllOnesGA/genetic_algorithm.py", line 12, in initPopulation population = population_file(self.populationSize, chromosomeLength) TypeError: 'module' object is not callable I think that I must change in the genetic_algorithm this line: population = population_file(self.populationSize, chromosomeLength) for this: population = population_file.Population(self.populationSize, chromosomeLength) what do you think? RE: missing 1 required positional argument: - Larz60+ - Apr-16-2019 don't do this: population = genetic_algorithm.GeneticAlgorithm.initPopulation(50) ga.evalPopulation(population)do this: population = ga.initPopulation(50) RE: missing 1 required positional argument: - psosmol - Apr-16-2019 If I do I get the message:
RE: missing 1 required positional argument: - Larz60+ - Apr-16-2019 Ok, but that error is different, and inside of the function that you wanted to call, so you are one step closer. And is on this call: population = population_file(self.populationSize, self.chromosomeLength)Please use BBCode tags they are required by forum rules. RE: missing 1 required positional argument: - DeaD_EyE - Apr-16-2019 population_file is a module.Look at your imports in genetic_algorithm.py .You're importing population_file . This is a module. I guessyou want to access a function or class inside this module. |