首頁>Club>
11
回覆列表
  • 1 # 使用者7925515346266

    對於很多程式語言來說,程式都必須要有一個入口,比如 C,C++,以及完全面向物件的程式語言 Java,C# 等。如果你接觸過這些語言,對於程式入口這個概念應該很好理解,C 和 C++ 都需要有一個 main 函式來作為程式的入口,也就是程式的執行會從 main 函式開始。同樣,Java 和 C# 必須要有一個包含 Main 方法的主類來作為程式入口。
    而 Python 則有不同,它屬於指令碼語言,不像編譯型語言那樣先將程式編譯成二進位制再執行,而是動態的逐行解釋執行。也就是從指令碼第一行開始執行,沒有統一的入口。

    一段好的示例程式碼勝過一切

    這裡有倆個程式

    const.py用來定義常數PI

    area.py

    需要PI這個常數來計算圓的面積

    const.py

    程式碼如下:

    PI

    =

    3.14

    def

    main

    ():

    print

    "PI:", PI

    main()

    當執行python const.py,輸出

    PI: 3.14

    area.py

    (匯入PI的值來計算圓面積)程式碼如下

    from const import PI

    def

    calc_round_area

    (radius):

    return

    PI

    *

    (radius

    **

    2)

    def

    main

    ():

    print

    "round area: ", calc_round_area(2)

    main()

    當執行python area.py,因為匯入了const,輸出

    PI: 3.14
    round area: 12.56

    可以看到

    const.py裡面的main()也被執行了

    但這是我們所不希望的

    怎麼辦?

    只需在const.py中加入一句:

    PI

    =

    3.14

    def

    main

    ():

    print

    "PI:", PI

    if

    __name__

    ==

    "__main__":
    main()

    _name_代表當前模組的名字

    當我們再次執行“python area.py”時

    對於const.py來說

    _name_不再是_main_

    因此其中的main()不再被執行

    最終得到我們想要的輸出

    round area: 12.56

    以上示例程式碼及註釋部分取自博文(非常好的總結文章,還詳細解釋了_

    name_

    ):

    Python 中的 if __name__ == '__main__' 該如何理解

  • 2 # 使用者2616454823811822

    所謂入口點,就是這個程式被執行的第1條語句位置,是main()函式的開始

  • 中秋節和大豐收的關聯?
  • 《戲夢巴黎》講述了什麼故事?