1.import 和 from import 的區別
import module導入模塊:語句執行完后會創建一個新的命名空間,在該命名空間中執行相應的函數。執行時,需要的變量、函數和類名前需要加 前綴 “模塊名.”
from module import *導入模塊:是將模塊的定義導入到當前的命名空間,此時不需要前面加前綴。
有包時:
import 包名.模塊名:需要前綴 包名.模塊名;
from 包名 import 模塊名:使用時不需要帶包名,但需要帶模塊名;
from 包名.模塊名 import *:直接使用函數,變量名即可;
2.我在練習import的時候發現一個問題:
在main文件中 導入demo1模塊的函數,demo1中的測試代碼也執行了??
解決辦法是demo1模塊中測試代碼加入if __name__=="__main__":
if __name__=="__main__": print("測試代碼======") print "轉換人民幣為:",dollar_convert_to_RMB(50)
解釋:每個模塊中都一個變量__name__, 這個變量決定了程序在哪個模塊執行。
一個python的文件有兩種使用的方法,第一是直接作為腳本執行,第二是import到其他的python腳本中被調用(模塊重用)執行。因此if __name__ == 'main': 的作用就是控制這兩種情況執行代碼的過程,在if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執行)才會被執行,而import到其他腳本中是不會被執行的。