[英]How can I save / copy classes & functions I've written in the python interpreter?
如何將您在python交互式會話中編寫的函數/類保存到文件中? 具體來說,pydev / eclipse的交互式會話(在mac上)有沒有辦法做到這一點?
我剛開始學習python - 我很高興使用解釋器的交互式會話來測試和玩我編寫的模塊。 但是,我發現自己在解釋器中編寫函數,我認為,將它保存到我的腳本文件中會很酷。 我該怎么做呢?
我試過了:
import pickle
pickle.dump(my_function, open("output.p", "w"))
但它似乎更像是二進制序列化,或者至少我沒有任何東西可以復制並粘貼到我的代碼中......
有沒有辦法看到我在解釋器中定義的類和函數背后的代碼? 然后將它們從解釋器中復制出來?
更新:
好的,這是我到目前為止所學到的:
在我看來,交互式編碼會話的最佳環境必須是IPython 。 它基於並擴展了基本的Python解釋器,具有很多魔力,包括歷史。 例如,您可以發出命令%logstart以將所有后續輸入轉儲到文件中,該文件在成為腳本之前仍然需要進行編輯,但是您可以使用它。
安裝IPython時,不要忘記pyreadline 。
但是,一般情況下,最好在IDE中編寫代碼然后運行它。 IPython也有幫助。 如果您編寫並保存腳本,然后使用IPython“run”命令運行它,腳本的整個全局命名空間將可用於您的IPython會話中的檢查。 此外,您可以使用-d參數運行以立即在任何未處理的異常上觸發pdb調試器。
如果你更像是一個直接的IDE和調試器類型的人,那么最簡單和最好的輕量級環境必須是PyScripter 。
我認為答案是改變你的工作流程。
我所做的是在編輯器(emacs)中編寫我的函數,然后按下組合鍵( Ctrl-c Ctrl-e
)將文本區域發送到(i)python解釋器。
這樣我可以保存我想要的功能,也可以在解釋器中使用它。
Emacs是我如何做到的核心,但我確信必須有許多編輯器(vim,gedit等)和IDE的類似方法。
PS。 在使用Python時,找到一個好的編輯器是至關重要的。 編輯器必須能夠輕松地向左右移動代碼塊,否則空白問題變得過於繁重。
我不喜歡在python解釋器中鍵入代碼塊,因為它不允許我輕松地移動塊。 當你找到合適的編輯器時,你會更喜歡Python。
我認為不可能做到。
Python可以使用inspect模塊執行instrospection,但是如果沒有源文件, inspect.getsource函數將無法工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.