Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python main() 函數(shù)

在本教程中,我們將學(xué)習(xí)如何使用Python程序的__name__屬性在不同的上下文中動態(tài)運行它。

Python中的main()函數(shù)是什么?

一些編程語言有一個稱為的特殊函數(shù)main(),它是程序文件的執(zhí)行點。但是,Python解釋器從文件頂部開始依次運行每一行,并且沒有顯式main()函數(shù)。

Python提供了其他約定來定義執(zhí)行點。其中之一是使用python文件的main()函數(shù)和__name__屬性。

Python中的__name__是什么?

__name__變量是一個特殊的內(nèi)置Python變量,它顯示當(dāng)前模塊的名稱。

根據(jù)執(zhí)行Python文件的位置,它具有不同的值。讓我們來看一個實例。

作為腳本運行Python文件

假設(shè)我們有一個名為helloworld.py的Python文件,其內(nèi)容如下:

print(__name__)

如果我們從命令行運行helloworld.py,則它將作為Python腳本運行。我們可以使用以下命令運行Python程序:

python helloworld.py
def foo():
    str="__main__"
    print(str);
if __name__=="__main__":
    foo()

當(dāng)我們將程序作為腳本運行時,變量的值__name__設(shè)置為__main__。因此,以下程序的輸出將是:

__main__

將Python文件作為模塊運行

我們還可以將Python文件作為模塊運行。為此,我們必須將此文件導(dǎo)入另一個Python程序。讓我們來看一個實例。

假設(shè)我們在與heloworld.py文件相同的目錄中有一個名為main.py的Python 文件。它具有以下內(nèi)容:

import helloworld

運行此文件時,將具有以下輸出:

helloworld

在這里,我們可以看到導(dǎo)入模塊也會運行模塊文件中的所有代碼。

但是,我們可以看到,而不是顯示 __main__,程序?qū)@示模塊的名稱,即 helloworld。

這是因為,在將Python文件作為模塊運行的情況下,模塊本身的名稱已分配給__name__變量。

if條件與__name__一起使用

現(xiàn)在我們已經(jīng)了解了__name__變量是如何分配值的,我們可以使用if條件子句在不同的上下文中,以不同的方式運行相同的Python文件。

讓我們來看一個實例。

假設(shè)我們將helloworld.py文件的內(nèi)容更改為以下內(nèi)容:

def main():
    print("Hello World")

if __name__=="__main__":
    main()

現(xiàn)在,當(dāng)我們通過命令行將其作為腳本運行時,輸出將是:

Hello World

但是,當(dāng)我們通過將其導(dǎo)入main.py文件將其作為模塊運行時,由于main()未調(diào)用該函數(shù),因此不會顯示任何輸出。

在這里,我們在helloworld.py文件中創(chuàng)建了一個自定義main()函數(shù)。它只在程序作為獨立腳本而不是作為導(dǎo)入模塊運行時執(zhí)行。

這是在Python中顯式定義main()函數(shù)的標(biāo)準(zhǔn)方法。 它是Python文件__name__變量的最流行用例之一。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清