2015-03-04 2 views
0

Это кажется слишком уродливым, чтобы быть особенно pythonic, но я ничего не могу найти в PEP8, который говорит мне иначе. Предположим, что все утверждения определены и работают очевидным образом.Является ли это хорошей практикой для цикла python while?

def myfunction(): 
    data = None 
    results = 1 
    while results >0: 
     data = make_lots_of_data_function(next_page) 
     for i in data: 
      do_something_with_i 
      ... 
     update(next_page) 
     results = data['num_results'] 

Мне просто не нравится result = 1 бизнес. Просто подумайте, что есть лучший способ сделать это. В принципе, алгоритм такой:

  • Получить данные.
  • Сделайте что-нибудь с этим.
  • Получить больше данных.
  • Остановить, когда данные исчерпаются.
+1

Я не вижу ничего плохого здесь .. – Maroun

+0

Python не поддерживает 'do' /' while' конструкт C и друзей. .. вы могли бы сделать что-то вроде 'done = False; пока не сделано: ... ' – Kevin

+4

IMHO Я нахожу более читаемым: while True: [...], если данные ['num_results'] == 0: break – Thomas8

ответ

0
def myfunction(): 
    data = {'num_results': 1} 
    while data['num_results']: 
     data = make_lots_of_data_function(next_page) 
     for i in data: 
      do_something_with_i 
      ... 
     update(next_page) 

по крайней мере, избавляется от результатов переменной

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