我的意思是:我可以在執行時更改Python源代碼嗎?
我有一個程序。最終用戶正在使用它。我提交了一段新的源代碼,並期望它運行,就好像它始終在那裏一樣?
我找不到具體回答這個問題的答案。
我希望能夠說,「擴展」或添加新功能(而不是修復已經存在的某些內容)而不需要終止程序(例如重新啓動或退出) 。
我的意思是:我可以在執行時更改Python源代碼嗎?
我有一個程序。最終用戶正在使用它。我提交了一段新的源代碼,並期望它運行,就好像它始終在那裏一樣?
我找不到具體回答這個問題的答案。
我希望能夠說,「擴展」或添加新功能(而不是修復已經存在的某些內容)而不需要終止程序(例如重新啓動或退出) 。
是的,你絕對可以在Python中做到這一點。
雖然它會打開一個安全漏洞,所以要非常小心。
您可以通過設置一個「loader」類來輕鬆完成此操作,該類可以收集您希望使用的源代碼,然後調用exec
內置函數,只需傳入一些python源代碼即可對其進行評估。
因爲我的問題基本上需要一個布爾答案......但我怎麼做,但將是有趣的。來自所有用戶的一些建議和其他一些問題給了我一些關於從哪裏開始的想法。謝謝。 – user3290891
如果你強制重新導入一切,你可能會逃脫。 Python緩存導入,這是它創建你看到的.pyc文件的時候。強制重新導入你的'main'中的所有東西都可能做你想要的東西 – inspectorG4dget
所以基本上重新加載(foo);導入foo? – user3290891
我會這樣想的。但我喜歡@ randomusername的回答更好 – inspectorG4dget