Python實現以主程序的形式執行模塊

前言:

這個先來創建一個模塊,名稱為christmastree,在該模塊中,首先定義一個全局變量,然後創建一個名稱為fun_christmastree()的函數,最後再通過print()函數輸出一寫內容。

代碼如下:

printree = "我是小菜雞"  # 定義全局變量”小菜雞“
def fun_christmastree():  # 定義函數
    """功能: 一個夢
    :return 無返回值
    """
    printree = "新星計劃,頒獎...我獲獎瞭@^。^@"  # 定義局部變量
    print(printree)  # 輸出局部變量

# ********************函數體外*********************** #
print("\n夜深瞭……\n")
print("===============開始做夢……===============")
fun_christmastree()  # 調用函數
print("===============開始做夢……===============")
printree = "原來是一場夢," + printree + "-_-"
print(printree)  # 輸出全局變量

在與christmastree模塊同級的目錄下,創建一個名稱為main.py的文件,在該文件中,導入christmastree模塊,再通過print()語句輸出模塊中的全局變量printree的值,

代碼如下:

import christmastree
print("全局變量的值為:", christmastree.printree)

運行上面代碼,將顯示如圖所示的內容:

從上圖所示的運行結果可以看出,導入模塊後,不僅輸出瞭全局變量的值,而且模塊中原有的測試代碼也被執行瞭。這個結果顯然不是我們想要的。那麼如何隻輸出全局變量的值呢?實際上,可以在模塊中,將原本直接執行的測試代碼放在一個if語句中。

因此,可以將模塊christmastree的代碼修改為以下內容:

printree = "我是小菜雞"  # 定義全局變量”小菜雞“
def fun_christmastree():  # 定義函數
    """功能: 一個夢
    :return 無返回值
    """
    printree = "新星計劃,頒獎...我獲獎瞭@^。^@"  # 定義局部變量
    print(printree)  # 輸出局部變量
# ********************判斷是否以主程序的形式運行*********************** #
if __name__ == "__main__":
    print("\n夜深瞭……\n")
    print("===============開始做夢……===============")
    fun_christmastree()  # 調用函數
    print("===============夢醒瞭……===============")
    printree = "原來是一場夢," + printree + "-_-"
    print(printree)  # 輸出全局變量

再次執行導入模塊main.py 文件,將顯示以下如圖所示的結果,從執行結果中可以看出測試代碼並沒有被執行。

此時,如果執行christmastree.py文件,將顯示如下圖所示的結果:

說明: 在每個模塊的定義中都包括一個記錄模塊名稱的變量__name__,程序可以檢查該變量,以確定它們在那個模塊中執行。如果一個模塊不是被導入到其他程序中執行,那麼它可能在解釋器的頂級模塊中執行。頂級模塊的__name__變量的值為__main__。

到此這篇關於Python實現主程序的形式執行模塊的文章就介紹到這瞭,更多相關Python執行模塊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: