2

test.py:

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()完成まで2本かかったそうnです。fun()は単一のステートメントnです。一度に 1 つのステートメントを実行するべきではありませんか? なぜfun()2 つかかるのnですか?
  3. の意味がよくわかりません--Return-- > <string>(1)<module>()->None。単一の単語や記号ではありません。
4

1 に答える 1

1
  1. None は関数の戻り値です。Module is は返された関数で、あなたの場合は実際のモジュールです。
  2. の最初の出現->def fun():は、関数が定義される場所です。それが呼ばれた2番目のもの。
  3. モジュールの署名がこのように見える理由はわかりません。デバッグ中で、pdb 内で実行されている可能性があります。
于 2013-04-29T09:44:41.280 に答える