簡體   English   中英

如何保存/復制我在python解釋器中編寫的類和函數?

[英]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"))

但它似乎更像是二進制序列化,或者至少我沒有任何東西可以復制並粘貼到我的代碼中......

有沒有辦法看到我在解釋器中定義的類和函數背后的代碼? 然后將它們從解釋器中復制出來?

更新:

好的,這是我到目前為止所學到的:

  • 我錯過了最簡單的方法 - 在Eclipse中PyDev的交互式會話允許您右鍵單擊並保存會話。 仍然需要刪除>>>,但完成工作。
  • IPython顯然是要做到這一點的方法。
  • 如何保存Python交互式會話? 有更多細節。

在我看來,交互式編碼會話的最佳環境必須是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歷史文件,它將您鍵入的所有內容存儲到解釋器中。

這是如何做:

http://docs.python.org/tutorial/interactive.html

我認為不可能做到。

Python可以使用inspect模塊執行instrospection,但是如果沒有源文件, inspect.getsource函數將無法工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM