1
對於我的碩士論文,我試圖利用Python作爲腳本語言的本質,以便允許運行時更改源代碼。源代碼本身使用特殊的用戶界面建模並在保存時生成。開始時,生成的代碼被髮送到引擎並導入。此過程可正常工作,直到源代碼更改而不在兩次運行之間重新啓動引擎(但重新啓動不可選)時爲止。Python 2.7運行時代碼更改
問題是即使文件已被更改,引擎仍然保留對舊源代碼的引用。
我花了相當一段時間尋找解決方案,發現作爲一個選項重新加載()(ref)。不幸的是,這不起作用。下面是相關部分的當前版本(被執行,則每次接收到的源代碼更改):
package = __import__("tmp", fromlist=["tmp"])
reload(package) # this seems to have no effect
clsmembers = inspect.getmembers(package, lambda member: inspect.isclass(member) and member.__module__ == package.__name__)
beclass = clsmembers[0][1]
be = beclass()
我使用Python 2.7的工作(我要,我知道以後的Python版本提供此功能的更好的支持)。它不一定是reload(),我只是需要任何方式來重新導入代碼的變化。
任何幫助表示讚賞! :)