2013-08-14 5 views
0

Итак, у меня есть эта функция ниже:Какой смысл возврата в этом коде?

def remove_all(lst): 
    i = 0 
    while i < 10: 
     try: 
      print('Removing... ') 
      print(int(lst.pop()) + 10) 
      print("Removed successfully.") 

     # As soon as an IndexError is raised, jump to the following block of code...   
     except IndexError as err: 
      # if you encounter an indexerror, do the following: 
      print("Uh oh! Problems.") 
      return 

     #As soon as a Value error is raised, jump here. 
     except ValueError as err: 
      print("Not a number") 

     i = i + 1 

Что возвращение делать? После возвращения нет значения, значит ли это значение «Нет» или «Истина»? И в чем смысл возвращения туда, если значение равно none?

Спасибо!

+0

Он будет возвращать 'None'. –

ответ

0

Оператор возврата может использоваться как своего рода поток управления. Поместив один (или более) оператор возврата в середину функции, вы можете выйти/остановить функцию.

7

Возвращаемое значение None.

В этом контексте функция никогда не возвращает значение. Точкой return является остановка выполнения

0

Это приводит к выходу функции, когда встречается IndexError, без какого-либо значения.

0

В вашем примере нет возвращаемого значения.

Учитывая вы вызываете функцию, как это:

a = remove_all(lst) 

а будет None, потому что функция просто ничего не возвращает.

Чтобы проверить успешность этой функции, вы могли бы реализовать это следующим образом:

def .... 
    try: 
     ... 
    exception 1: 
     your error handling... 
     return False 
    exception 2: 
     your error handling... 
     return False 

    continue function... 
    return True 

Когда вы затем проверить возвращаемое значение вашей функции, вы увидите, если она была выполнена до конца (True), или если он поднял ошибку до (False).

Однако это не приведет к продолжению выполнения этой конкретной функции после возникновения одной из определенных ошибок.

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