2013-04-29 3 views
2

test.py:pdb - Что означает выход?

def fun(): 
    print 'Function' 

if __name__ == '__main__': 
    fun() 

$ python -m pdb test.py:

> /home/h/CARDIO/WorkSpace/PDB/test.py(4)<module>() 
-> def fun(): 
(Pdb) n 
> /home/h/CARDIO/WorkSpace/PDB/test.py(7)<module>() 
-> if __name__ == '__main__': 
(Pdb) n 
> /home/h/CARDIO/WorkSpace/PDB/test.py(8)<module>() 
-> fun() 
(Pdb) n 
Function 
--Return-- 
> /home/h/CARDIO/WorkSpace/PDB/test.py(8)<module>()->None 
-> fun() 
(Pdb) n 
--Return-- 
> <string>(1)<module>()->None 
(Pdb) n 
The program finished and will be restarted 
  1. Что делает <module> и ->None см?
  2. Кажется, fun() взял два n, чтобы закончить. fun() - это одно заявление, не должно быть n шаг за шагом за один раз? Почему fun() взять два n?
  3. Я действительно не знаю значения --Return-- > <string>(1)<module>()->None. Ни одного слова или знака.

ответ

1
  1. None - это возвращаемое значение вашей функции. Модуль - это возвращаемая функция, которая в вашем случае является фактическим модулем.
  2. Первое вхождение ->def fun(): - это функция, определяющая функцию. Второй, который он назвал.
  3. Я не понимаю, почему подпись вашего модуля выглядит так. Возможно, это потому, что вы отлаживаете его и запускаете внутри pdb.
Смежные вопросы