Печать из цикла внутри функции: другой результат

#python

#python

Вопрос:

Я пишу функцию, которая выполняет итерации по списку и обрабатывает каждое задание, я хотел бы проверить, что я написал это правильно, поэтому я добавил print(body) в свою функцию после кода обработки, который, как я ожидал, покажет мне каждую строку с различным содержимым в соответствии со списком заданий, но я вижу все строки с одинаковым результатом.

Вот моя функция:

 # Iterate through the requests and execute them

def update_conversions(service):

  for req in request_bodies:
    request = service.conversion().update(body=req)

    print(body)
  

И результат — это содержимое последнего элемента в списке в 10 раз. Список состоит из 10 пунктов.

Когда я перебираю список и просто распечатываю содержимое, я вижу все 10 элементов с разным содержимым, как и ожидалось:

 def printer():   
    for req in request_bodies:
    print(req)
  

В чем разница между этими двумя запросами, из-за которой первый повторяет последнюю строку несколько раз?

Комментарии:

1. Ваш первый пример не воспроизводим, потому что request_bodies и body не определены. Кроме того, вы не можете сказать, что там происходит, не зная, что service.conversion().update(body=req) делает.

Ответ №1:

Проблема заключалась в уровне переменной body , я не заметил, что он был внутри request переменной.

Изменение моего кода на print(request.body) показывает ожидаемый результат, по одной строке для каждого элемента в списке.