2015-03-24 4 views
0

Я пытаюсь использовать метод внутри объекта для его работы, но он заставляет меня говорить, что тип данных не соответствует.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'

Я не включил остальную часть кода, потому что это не важно, и ясно, какой вызов делает что.

+0

Вы итерации над списком пуст кажется. – Taylor

+0

Вы правы, я просто забыл о нем. Исправлено. – AEmbid

+0

какой тип 'space.getNumCleanedTiles' возвращается? – itzMEonTV

ответ

0

@luther получил ответ, я забыл поставить () после getNumCleanedTiles

Смежные вопросы