2014-01-25 56 views
0

我有一個python DES腳本,以main()的調用結束。運行主菜單並啓動DES過程。我想用另一個腳本運行我的DES功能分析。每當我做一些類似from DES.py import des的嘗試,以避免主跑,它仍然開始。 如何導入函數並保持對main的尾部引用不被調用?從自動運行腳本導入Python函數

回答

0

當您在Python中使用import模塊時,您將執行該模塊中的代碼。所以,如果你的模塊看起來是這樣的:

def main(): 
    print 'Hello, world.' 

main() 

然後每次導入模塊的時候,它會執行調用 main()。爲防止這種情況發生,您可以查看 變量__name__,它在主程序中設置爲__main__,這是由解釋程序直接啓動的東西 - 。當您將 import一個模塊,__name__設置爲其他(通常, 模塊的名稱)。如果你想有一個是當 直接執行你的模塊(python mymodule.py)運行,但導入您的模塊(import mymodule)時,忽略 代碼,那麼你可以檢查 值__name__變量:

def main(): 
    print 'Hello, world.' 

if __name__ == '__main__': 
    main() 

的以上代碼將直接運行時執行main(),但導入時不會執行 。