TypeError:从其他类调用方法时,“list”对象不能解释为整数

2024-05-13 14:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个优化问题编写代码,这个优化问题基于在这里找到的库metaheuristic-algorithms-python 0.1.6。我有2节课

  • Search\u FA:我编写的一个python脚本,用于创建一个带有一些参数的对象,并将其传递给下面的第二个类
  • FireflyAlgorithm:一个实现基于Firefly优化算法的搜索的类,该算法是在元启发式算法Python0.1.6中开发的,我没有更改它

第1类:

 from metaheuristic_algorithms.firefly_algorithm import FireflyAlgorithm
rosenbrook_function_wrapper = MyObjective()

Location = [8,2,2,10]

Light = 0.95

number_of_fireflies = 10
maximun_generation = 10 
randomization_parameter_alpha = 0.2 
absorption_coefficient_gamma = 1.0
result = FA_search.search(number_of_fireflies,maximun_generation,randomization_parameter_alpha,absorption_coefficient_gamma)

第二类:

这是我从导入的类FireflyAlgorithm调用的方法

def search(self, number_of_fireflies = 10, maximun_generation = 10, randomization_parameter_alpha = 0.2, absorption_coefficient_gamma = 1.0):

        self.__initialize_fireflies(number_of_fireflies)

        for generation in range(maximun_generation):

            for firefly in self.__fireflies:
                firefly.update_light_intensity()

            self.__move_fireflies(randomization_parameter_alpha, absorption_coefficient_gamma)

        solution_firefly = self.__select_best_firefly_by_light_intensity(self.__fireflies)

        return { "best_decision_variable_values": solution_firefly.location_coordinates, "best_objective_function_value": solution_firefly.light_intensity }

然而,当我运行我的代码,我得到这个错误

        File "Search_FA.py", line 34, in <module>
    result = FA_search.search(number_of_fireflies,maximun_generation,randomization_parameter_alpha,absorption_coefficient_gamma)

  File "\metaheuristic_algorithms\firefly_algorithm.py", line 32, in search
    self.__initialize_fireflies(number_of_fireflies)

  File "\metaheuristic_algorithms\firefly_algorithm.py", line 50, in __initialize_fireflies
    decision_variable_values = [super(FireflyAlgorithm, self).get_decision_variable_value_by_randomization(variable_index) for variable_index in range(self.number_of_variables)]

TypeError: 'list' object cannot be interpreted as an integer

我传递的所有变量都是int所以我想知道list从哪里来?你知道吗


Tags: ofinselfalphanumbersearchparametergeneration