首頁  >  文章  >  後端開發  >  學Python,還不知道main函數嗎

學Python,還不知道main函數嗎

WBOY
WBOY轉載
2023-04-12 14:58:091731瀏覽

Python 中的 main 函數充當程式的執行點,在 Python 程式設計中定義 main 函數是啟動程式執行的必要條件,不過它僅在程式直接執行時才執行,而在模組匯入時不會執行。

要了解有關Python main 函數的更多信息,我們將從如下幾點逐步學習:

  • 什麼是Python 函數
  • Python 中main 函數的功能是什麼
  • 一個基本的Python main() 是怎樣的
  • Python 執行模式

Let's get started

#什麼是Python 函數

相信很多小夥伴對函數都不陌生了,函數是可重複使用的程式碼區塊,它構成了在程式語言中執行操作的基礎,它們被用來對輸入資料執行計算並將輸出呈現給最終使用者。

我們已經了解到,函數是為執行特定任務而寫的一段程式碼。 Python中的函數分為三種類型,分別是內建函數、使用者定義函數和匿名函數。同時我們需要明確,main 函數與 Python 中的任何其他函數都是一樣的,沒有區別。

那麼讓我們來了解一下 Python 中的 main 函數到底是什麼。

Python 中的main 函數是什麼

在大多數程式語言中,都有一個特殊的函數,每次程式執行時都會自動執行,這就是是 main 函數,或通常表示的 main(),它本質上是程式執行的起點。

在 Python 中,不必每次編寫程式時都定義 main 函數,這是因為除非定義了特定函數,否則 Python 解釋器都會從檔案頂部執行。因此,為 Python 程式的執行定義一個起點有助於更好地理解程式的工作原理。

一個基本的Python main()

在大多數Python 程式/腳本中,我們可能會看到一個函數定義,然後是一個條件語句,如下所示:

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


if __name__== "__main__" :
main()

main 函數對於Python 來說是必須的嗎

在Python 中擁有 main 函數並不是強制性的,但是,在上面的範例中,我們可以看到,定義了一個名為main() 的函數,下面是一個條件 if 語句,它會檢查 __name__ 的值,並與字串 __main__ 比較,而當為True 時,就會執行 main()。

執行時,會列印「Hello, World!」。

當我們處理要作為 Python 腳本執行或要在其他模組中匯入的檔案時,這種程式碼模式是非常常見的。

讓我們詳細來看這段程式碼是如何執行的,首先我們非常有必要了解 Python 解譯器設定 __name__ 取決於程式碼的執行方式。那麼,讓我們來了解Python 中的執行模式

Python 執行模式

#有兩種主要方法可以告訴Python 解釋器執行程式碼:

    ##最常見的方法是將檔案作為Python 腳本執行
  • 透過將必要的程式碼從一個Python 檔案匯入到另一個檔案
無論我們選擇哪種執行模式,Python 都會定義一個名為 __name__ 的特殊變量,其中包含一個字串。正如我們前面所看到的,這個字串的值取決於程式碼的執行方式。

有時當我們從模組導入時,我們想知道特定模組的函數是否被用作導入,或者只是使用該模組的原始 .py(Python 腳本)檔案。

為了解決這個問題,Python 有一個特殊的內建變量,稱為 __name__,可以根據執行或執行腳本的方式,此變數會被指派字串 __main__。

Python 中的 __main__ 是什麼

Python main 函數是任何 Python 程式的入口。當我們運行程式時,解釋器按順序運行程式碼,如果作為模組導入,則不會運行 main 函數,main 函數只有在作為 Python 程式運行時才會執行。

因此如果我們直接執行腳本,Python 會將 __main__ 指派給 __name__,即 __name__=「__main__」。

因此,如果條件語句的計算結果為 True,則表示 .py(Python 腳本)檔案正在直接執行或執行。

有一點需要重點注意,如果我們直接在 Python shell 或終端上運行某些東西,則預設情況下,此條件語句恰好為 True。

最終我們習慣性的把所有必要的函數定義都寫在了程式碼檔案的最上面,最後在檔案的最後寫了這條語句,來組織程式碼。

if __name__ == "__main__" :
Logic Statements

簡而言之,__name__ 變數可以幫助我們檢查檔案是直接運作還是已匯入。

在寫具有 main 功能的程式時,我們需要記住以下一些事情

#盡可能使用函數和類別

长期以来,我们一直在学习面向对象编程的概念及其优势,所以绝对有必要将批量逻辑代码放在紧凑的函数或类中。通过这种方式,我们可以控制代码的执行,而不是让 Python 解释器一导入模块就执行它。

让我们看看下面的一段代码:

def get_got():
print("…Fetching GOT Data… n")
data="Bran Stark wins the Iron Throne. n"
print("…GOT Data has been fetched…n")
return data
 
print("n Demo: Using Functions n")
got=get_got()
print(got)

在上面的示例中,我定义了一个名为 get_got 的函数,它返回存储在变量 data 中的字符串。然后将其存储在名为 got 的变量中,最后打印该变量。

输出如下:

學Python,還不知道main函數嗎

使用 __name__ 来控制代码的执行

现在我们知道了什么是 __name__ 变量,那么该如何以及为什么使用它。让我们看看下面的代码片段:

if __name__ == "__main__":
got = "Game of Thrones is a legendary shown"
print(got)
new_got = str.split(got)
print(new_got)

在上面的示例中,条件 if 语句将比较变量 __name__ 的值与字符串 __main__。当且仅当它的计算结果为 True 时,才会执行下一组逻辑语句。由于我们直接运行程序,我们知道条件语句将是 True。因此语句被执行,我们得到了想要的输出。这样我们就可以使用 __name__ 变量来控制我们代码的执行。

输出如下:

學Python,還不知道main函數嗎

创建一个包含要运行代码的函数 main()。

到目前为止,我们已经了解了 Python 代码的各种执行方式,同时我们还知道为什么以及何时使用 main() 函数,下面就来应用它。看下面这段代码:

print("n Main Function Demo n")
def demo(got):
print("…Beginning Game Of Thrones…n")
new_got = str.split(got)
print("…Game of Thrones has finished…n")
return new_got

def main():
got= "n Bran Stark wins the Iron Throne n"
print(got)
new_got = demo(got)
print(new_got)
if __name__ == "__main__":
main()

在上面的例子中,我们使用了 main() 的定义,它包含了我们要运行的程序逻辑。我们还定义了一个名为 demo 的函数,包含一段代码,可以在必要时复用。此外我们还更改了条件块,使其执行 main()。

这样,我们将要运行的代码放在 main() 中,将编程逻辑放在一个名为 demo 的函数中,并在条件块中调用 main()。

来看一下输出:

學Python,還不知道main函數嗎

可以尝试一下,如果将此代码作为脚本运行或导入它,则输出将是相同的。

从 main() 调用其他函数

当我们编写成熟的 Python 程序时,可能有许多可以调用和使用的函数。通常情况下,一些函数应该在程序开始执行时立即调用。因此,从 main() 本身调用其他函数就是最佳的选择了。

让我们看看下面的代码片段:

print("n Main Function Demo n")
def demo(got):
print("…Beginning Game Of Thrones Demo1…n")
new_got = str.split(got)
print("…Game of Thrones has finished…n")
return new_got
def getgot():
print("…Getting GOT Data…n")
got="Bran Stark wins the Iron Throne n"
print("…GOT Data has been returned…n")
return got
def main():
got= getgot()
print(got)
new_got = demo(got)
print(new_got)
if __name__ == "__main__":
main()

在上面的示例中,我们定义了一个名为 getgot() 的函数来获取数据,这个函数是从 main() 本身调用的。

因此,从 main() 中调用其他函数以将整个任务从可以独立执行的较小子任务中组合起来总是较好的选择。

输出如下:

學Python,還不知道main函數嗎

希望通过这篇文章,对于 Python 中 main() 函数的全部内容以及如何使用它有一个全面而正确的理解。借助 Python 中的 main() 函数,我们可以在需要时执行大量功能,还可以控制执行流程。

以上是學Python,還不知道main函數嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除