歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> IPython與Python的區別

IPython與Python的區別

日期:2017/2/28 14:22:17   编辑:Linux教程

IPython的開發者吸收了標准解釋器的基本概念,在此基礎上進行了大量的改進,創造出一個令人驚奇的工具。在它的主頁上是這麼說的:“這是一個增強的交互式Python shell。”具有tab補全,對象自省,強大的歷史機制,內嵌的源代碼編輯,集成Python調試器,%run機制,宏,創建多個環境以及調用系統shell的能力。

1)IPython與標准Python的最大區別在於,Ipython會對命令提示符的每一行進行編號。如下圖:

對比兩個例子,其輸出變量值似乎相同,其實仍有差別。print語句使用非正式的(unofficial)字符串表達式,而簡單變量名(bare variable name)使用了正式的(official)字符串表達式。在處理自定義類而不是內置類時,這種差異會體現得非常明顯。
In [10]: class DoubleRep(object):
....: def __str__(self):
....: return 'Hi, I'm a __str__'
....: def __repr__(self):
....: return 'Hi, I'm a __repr__'
....:
....:
In [11]: dr = DoubleRep()
In [12]: print dr
Hi, I'm a __str__
In [13]: dr
Out[13]: Hi, I'm a __repr__


2)tab補全
作為例子,我們先引入 sys 模塊,之後再輸入 sys. (注意有個點),此時按下 tab 鍵,IPython 會列出所有 sys 模塊下的方法和屬性。

接著上面的例子,我們輸入 sys?再回車,這樣會顯示出 sys 模塊的 docstring及相關信息。很多時候這個也是很方便的功能。

3)歷史機制
hist可以快速查看那些輸入的歷史記錄。
hist -n可以快速查看並去掉歷史記錄中的序號,這樣你就可以方便的將代碼復制到一個文本編輯器中。
一個更簡單的方法是edit加Python列表的切片(slice)語法:
edit 4:7 % 將第4,5,6,7句代碼導出到編輯器


4)斷點調試:如果你的程序是由命令行開始執行的,即在命令行下輸入 python foo.py(大部分 Python 程序都是),那麼你還可以利用 IPython 在你的程序任意地方進行斷點調試。
在你程序中任意地方,加入如下語句:
from IPython.Shell import IPShellEmbed
IPShellEmbed([])()
注意:最近 IPython 發布了 0.11 版本,各方面變化都非常大,API 也經過了重新設計。如果你使用的是 0.11 那麼上面兩行對應的是這樣的:
from IPython import embed
embed()
再和平常一樣運行你的程序,你會發現在程序運行到插入語句的地方時,會轉到 IPython 環境下。你可以試試運行些指令,就會發現此刻 IPython 的環境就是在程序的那個位置。你可以逐個浏覽當前狀態下的各個變量,調用各種函數,輸出你感興趣的值來幫助調試。之後你可以照常退出 IPython,然後程序會繼續運行下去,自然地你在當時 IPython 下執行的語句也會對程序接下來的運行造成影響。
這個方法是在這裡(http://lukeplant.me.uk/blog/posts/exploratory-programming-with-ipython/)看到的。想象一下,這樣做就像讓高速運轉的程序暫停下來,你再對運行中的程序進行檢查和修改,之後再讓他繼續運行下去。這裡舉一個例子,比如編寫網頁 bot ,你在每取回一個頁面後你都得看看它的內容,再嘗試如何處理他獲得下一個頁面的地址。運用這個技巧,你可以在取回頁面後讓程序中斷,再那裡實驗各種處理方法,在找到正確的處理方式後寫回到你的代碼中,再進行下一步。這種工作流程只有像 Python 這種動態語言才可以做到。

CentOS 6.4 中IPython如何啟動Qt控制台和NoteBook? http://www.linuxidc.com/Linux/2014-04/100037.htm

CentOS 5安裝IPython http://www.linuxidc.com/Linux/2014-04/100038.htm

CentOS和RHEL安裝 IPython 0.11 http://www.linuxidc.com/Linux/2014-04/100041.htm

CentOS6.5安裝Python2.7.8以及安裝IPython http://www.linuxidc.com/Linux/2015-01/111092.htm

IPython 的詳細介紹:請點這裡
IPython 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved