我想寫發現在用戶程序的例外遞歸調用模塊的邏輯缺陷
程序我有一個名爲test.py是:
try:
# some code to get the name of the calling program
#Then the code is like "import filename.py" , for example the next line
import sample.py # this is what should happen when the file name is got
execfile("test.py") # to run this file
catch:
# catching some exceptions here
現在
,如果我假設用戶有一個文件說sample.py它看起來像
import test.py
def __main__():
4/0 # sample exception
我是新來的Python編程,但我知道,蟒蛇把所有的程序作爲模塊,所以基本上是我設想的程序流程爲
1)當用戶運行sample.py時,控制流轉到test.py,然後獲取調用程序的名稱並將它導入到try塊中。
2)然後流回到sample.py和理想,我想可能遇到的異常,並抓住
3),但是當控制回來sample.py它吉斯回test.py引起遞歸循環
我的問題是雙重的
1)是否有辦法讓已經導入了模塊程序的名稱。也有一種方法來獲取在同一工作區(相同的文件夾)中的程序的名稱
2)我有這個控制流的原因是我想用戶不要打開我的程序(test.py ),但無論我如何看待它,如果我的模塊只是導入到他的程序中,它將像遞歸循環一樣運行,任何修改我的設計以使其工作的建議,也許第三個腳本將它組合在一起?
我使用Python 2.7
奇怪的設計模式是因爲我不希望用戶編寫任何代碼來運行我的程序,最大,他應該寫只是導入我的程序
我不太明白的內容:哪裏是用戶編寫代碼?如果他們需要做的只是運行樣本,那麼爲什麼樣本需要了解測試? –
用戶在sample.py中寫入代碼,用戶使用test.py查找異常 – user1801279
那麼爲什麼sample.py需要導入test.py?用戶運行test.py不是更簡單更合適嗎? –