Я пытаюсь использовать метод внутри объекта для его работы, но он заставляет меня говорить, что тип данных не соответствует.Python OOP - вывод метода рабочих объектов
Я все еще учусь, и я знаю, что такая проблема должна быть чем-то, с чем рано или поздно сталкиваются каждый в своем процессе обучения, но я не мог найти ясного объяснения и ни одного вопроса, подобного этому здесь (он может мое needToImproveSearchingSkills)
def runSimulation(num_robots, speed, width, height, min_coverage, num_trials, robot_type):
"""
Runs NUM_TRIALS trials of the simulation and returns the mean number of
time-steps needed to clean the fraction MIN_COVERAGE of the room.
The simulation is run with NUM_ROBOTS robots of type ROBOT_TYPE, each with
speed SPEED, in a room of dimensions WIDTH x HEIGHT.
num_robots: an int (num_robots > 0)
speed: a float (speed > 0)
width: an int (width > 0)
height: an int (height > 0)
min_coverage: a float (0 <= min_coverage <= 1.0)
num_trials: an int (num_trials > 0)
robot_type: class of robot to be instantiated (e.g. StandardRobot or
RandomWalkRobot)
"""
space = RectangularRoom(width, height)
bots = []
times = []
total = 0
for n in range(num_robots):
bots.append(StandardRobot(space, speed)) #needs change to robot_type
for s in range(num_trials):
test_time = 0
while space.getNumCleanedTiles/(width*height) < min_coverage:
for bot in bots:
bot.updatePositionAndClean()
test_time += 1
times.append(test_time)
for time in times:
total += time
return total/len(times)
Когда я пытаюсь запустить его, он говорит мне, что space.getNumCleanedTiles/(width*height) < min_coverage
не может быть вычислена. Бросать на меня a TypeError TypeError: unsupported operand type(s) for /: 'instancemethod' and 'int'
Я не включил остальную часть кода, потому что это не важно, и ясно, какой вызов делает что.
Вы итерации над списком пуст кажется. – Taylor
Вы правы, я просто забыл о нем. Исправлено. – AEmbid
какой тип 'space.getNumCleanedTiles' возвращается? – itzMEonTV