什麼是編輯在Python IDLE(或控制檯)的環境中定義一個函數的方法呢?編輯在Python IDLE功能
7
A
回答
8
簡短的回答:沒有。龍回答:如果你啓用了readline的支持,您可以使用向上箭頭,「重新定義」這行由行。
2
您可以最多牛肉的Python REPL了不少,甚至從它calling your favorite editor。如果您使用的是與鼠標的支持(如X照常)或屏幕的終端,只需滾動到最後一個函數定義,複製源,調用編輯器並粘貼到它。編輯品嚐,執行。
2
我一直在尋找一種方式來做到這一點我自己,我感到非常難過,這是不可能的,但我會分享我用一個快速的解決方法。
我沒有在控制檯中定義myFunction()
,而是在文件myFile.py
中定義它。在控制檯我然後導入:
import myFile
from imp import reload
我然後做一個指向我的功能(在長文件名的情況下),像這樣:
def pMyFunction():
return myFile.myFunction()
每當我想修改myFunction的,我這樣做在myFile.py中,然後重新加載模塊:
reload(myFile)
沒什麼太花哨,但它幫助我擺脫困境。
1
您可以使用檢查模塊獲取當前的源代碼,然後重新定義函數:
from inspect import getsource
def helloworld():
print('Hello, World!')
print(getsource(helloworld))
你甚至可以使用Python字符串的方法來改變它,然後用exec
重新定義的功能。不過,我會考慮這種不好的風格。
from functools import getsource
def helloworld():
print('Hello, World!')
old = getsource(helloworld)
new = old.replace('Hello', 'Cheers')
exec(new)
helloworld()
相關問題
- 1. Python編輯器比IDLE更好
- 2. 編輯功能
- 3. 在jQgrid中編輯功能?
- 4. 編輯WordPress功能
- 5. 編輯grid.table功能
- 6. 在Python 2.6.5腳本中使用「使用IDLE編輯」
- 7. 的Python,在IDLE
- 8. 如何使編輯功能
- 9. 使用jquery編輯功能
- 10. javascript note編輯功能
- 11. 圖像編輯功能
- 12. 編輯功能的行爲
- 13. 限制編輯功能
- 14. 「編輯」功能,這樣
- 15. 的jqGrid聯編輯功能
- 16. 如何編輯和運行帶有IDLE的python文件.py
- 17. Python的IDLE編輯器是否使用備用字體?
- 18. 從命令行啓動Python IDLE編輯腳本
- 19. Python空閒 - 是否有任何IDLE功能編輯以前定義的類/函數?
- 20. Kendo Grid獲取你正在編輯的行編輯功能
- 21. 如何在Sitecore頁面編輯器中啓用編輯功能?
- 22. 在ASP.NET webforms中編輯就地功能
- 23. 在NetBeans編輯事件的功能
- 24. 在gerrit中禁用編輯功能
- 25. Jsf在數據表中編輯功能
- 26. 的EditText編輯功能在MVVMCross
- 27. 在Perl中編輯linux功能
- 28. 如何在創建後編輯功能
- 29. 同功能編輯和插入在Codeigniter
- 30. Python 2.7.11,3.4.4,3.5.1 IDLE打印窗口功能不起作用
這對於使用命令歷史來說是致命的不方便,因爲當您幾次修改某個函數時,您並不知道它是在環境中定義的那一個。有沒有辦法打印環境功能代碼? – Leonid 2011-06-10 22:05:53
所有名稱在IDLE使用的交互式解釋器的全局名稱空間內都是唯一的,因此您應該知道在您的環境中定義的最後一個名稱是定義的名稱空間。你能澄清一下你打算去打印環境功能代碼的意思嗎?你的意思是Python的源代碼? – jathanism 2011-06-10 23:05:10
是的,打印功能源代碼。 – Leonid 2011-06-11 10:56:58