您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)IPython8.0命令行交互工具怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
前言:
IPython
是 Python 的原生交互式 shell 的增強版,可以完成許多不同尋常的任務(wù),比如幫助實現(xiàn)并行化計算;主要使用它提供的交互性幫助,比如代碼著色、改進(jìn)了的命令行回調(diào)、制表符完成、宏功能以及改進(jìn)了的交互式幫助。
IPython 8.0 醞釀了許久,主要對現(xiàn)有代碼庫和幾個新功能進(jìn)行了改進(jìn)。新功能包括在 CLI 中使用 Black 重新格式化代碼、ghost 建議以及突出錯誤節(jié)點的更好的回溯,從而使復(fù)雜的表達(dá)式更易于調(diào)試。
之前的錯誤回溯顯示一個散列表(hash),用于編譯 Python AST:
In [1]: def foo(): ...: return 3 / 0 ...: In [2]: foo() --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-2-c19b6d9633cf> in <module> ----> 1 foo() <ipython-input-1-1595a74c32d5> in foo() 1 def foo(): ----> 2 return 3 / 0 3 ZeroDivisionError: division by zero
現(xiàn)在錯誤回溯的格式正確,會顯示發(fā)生錯誤的單元格編號:
In [1]: def foo(): ...: return 3 / 0 ...: Input In [2]: foo() --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) input In [2], in <module> ----> 1 foo() Input In [1], in foo() 1 def foo(): ----> 2 return 3 / 0 ZeroDivisionError: division by zero
第二個回溯改進(jìn)是stack_data
包的集成;在回溯中提供更智能的信息;它會突出顯示發(fā)生錯誤的 AST 節(jié)點,這有助于快速縮小錯誤范圍,比如:
def foo(i): x = [[[0]]] return x[0][i][0] def bar(): return foo(0) + foo( 1 ) + foo(2)
調(diào)用 bar()
會在 IndexError 的返回行上引發(fā)一個 foo,IPython 8.0 可以告訴你索引錯誤發(fā)生在哪里:
IndexError Input In [2], in <module> ----> 1 bar() ^^^^^ Input In [1], in bar() 6 def bar(): ----> 7 return foo(0) + foo( ^^^^ 8 1 ^^^^^^^^ 9 ) + foo(2) ^^^^ Input In [1], in foo(i) 1 def foo(i): 2 x = [[[0]]] ----> 3 return x[0][i][0] ^^^^^^^
用 ^ 標(biāo)記的位置在終端會高亮顯示。
第三個回溯改進(jìn)是最謹(jǐn)慎的,但對生產(chǎn)力有很大影響,在回溯中的文件名后面附加一個冒號 :: 和行號:
ZeroDivisionError Traceback (most recent call last) File ~/error.py:4, in <module> 1 def f(): 2 1/0 ----> 4 f() File ~/error.py:2, in f() 1 def f(): ----> 2 1/0
許多終端和編輯器具有的集成功能,允許在使用此語法時 直接跳轉(zhuǎn)到錯誤相關(guān)的文件/行 。
Ptpython
允許用戶在ptpython/config.py
中啟用自動建議功能,此功能包含豐富的代碼補全建議,
如圖:
目前,自動建議僅在 emacs 或 vi 插入編輯模式中顯示:
ctrl e
、ctrl f
和 alt f
快捷鍵默認(rèn)在 emacs 模式下工作。
要在 vi 插入模式下使用這些快捷鍵,必須在 config.py
中創(chuàng)建自定義鍵綁定。
在 IPDB 中,現(xiàn)在可以使用“?”和”? ?“來顯示對象的信息,在使用 IPython 提示符時也可如此操作:
ipdb> partial? Init signature: partial(self, /, *args, **kwargs) Docstring: partial(func, *args, **keywords) - new function with partial application of the given arguments and keywords. File: ~/.pyenv/versions/3.8.6/lib/python3.8/functools.py Type: type Subclasses:
之前使用 %history
功能時 , 用戶可以指定會話和行的范圍,例如:
~8/1-~6/5 # see history from the first line of 8 sessions ago, # to the fifth line of 6 sessions ago.``
或者可以指定全局模式(global):
-g <pattern> # glob ALL history for the specified pattern.
但無法同時指定兩者,如果用戶確實指定了范圍和全局模式,則將使用 glob 模式(通配所有歷史記錄),并且將 忽略范圍 。
現(xiàn)在此功能獲得了增強,如果用戶同時指定范圍和 glob 模式,則 glob 模式將應(yīng)用于指定的歷史范圍。
感謝各位的閱讀!關(guān)于“IPython8.0命令行交互工具怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。