<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python中的 if __name__ == '__main__' 是什么?

          共 1778字,需瀏覽 4分鐘

           ·

          2024-04-11 08:49

          新手學(xué)Python的時(shí)候,一定見過`if __name__ == '__main__':`這段代碼, 尤其是在寫Python腳本 的時(shí)候 這段代碼究竟是啥意思,有啥作用? 為了搞懂這行代碼,首先要了解Python中的`__name__`屬性和主程序概念。 __name__ 屬性 在Python中,每個(gè)Python文件(不管是被執(zhí)行的腳本還是被導(dǎo)入的模塊)都有一個(gè)內(nèi)置的`__name__`屬性。 當(dāng)文件被直接執(zhí)行時(shí),`__name__`的值會(huì)被設(shè)置為`'__main__'`,而當(dāng)文件被導(dǎo)入到其他文件時(shí),`__name__`的值則會(huì)被設(shè)置為文件的名字。 主程序和模塊 主程序:就是直接被運(yùn)行的Python文件,程序運(yùn)行的入口,在這個(gè)文件中,`__name__`的值是`'__main__'`。 模塊:被其他Python文件導(dǎo)入(import)使用的文件。在這個(gè)文件中,`__name__`的值是該文件的名稱。  if __name__ == '__main__'是什么? 所以,現(xiàn)在你應(yīng)該明白這行代碼的意義了吧?就是讓Python判斷當(dāng)前運(yùn)行的環(huán)境是主程序還是被導(dǎo)入的模塊。 如果是主程序,那么 if 代碼塊將被執(zhí)行。如果是被導(dǎo)入的模塊,那么這部分代碼就不會(huì)被執(zhí)行。 為什么要這樣做? 這樣做有幾個(gè)好處: 1. 模塊化和復(fù)用:允許單個(gè)Python文件既可以被導(dǎo)入使用,也可以作為獨(dú)立的程序運(yùn)行。 2. 測(cè)試代碼:你可以在`if __name__ == '__main__':`下面寫一些測(cè)試代碼,只有在文件作為主程序運(yùn)行時(shí)這些代碼才會(huì)被執(zhí)行,這樣就不會(huì)影響到此模塊被其他文件導(dǎo)入時(shí)的行為。 3. 代碼清晰:這種做法可以清晰地區(qū)分模塊的接口和實(shí)現(xiàn),讓代碼更易于理解和維護(hù)。 示例 假設(shè)有兩個(gè)文件:`module.py`和`main.py`。 module.py內(nèi)容:
                
                  
                    def foo():
                  
                
                
                      print("foo() from module.py")
                
                
                  if __name__ == '__main__':
                
                
                      print("module.py is being run directly")
                
                
                  else:
                
                
                      print("module.py is being imported into another module")
                
              
          main.py內(nèi)容:
                
                  import module
                
                
                  
                    module.foo()
                  
                
              
          當(dāng)你直接運(yùn)行 module.py 時(shí),會(huì)看到"module.py is being run directly"。 但如果你運(yùn)行`main.py`,`module.py`被導(dǎo)入,你會(huì)看到"module.py is being imported into another module",然后是"foo() from module.py"。 通過這個(gè)例子,你可以看到`if __name__ == '__main__':`如何幫助區(qū)分直接執(zhí)行和被導(dǎo)入的情況,以及如何根據(jù)不同的運(yùn)行環(huán)境執(zhí)行不同的代碼。 這在開發(fā)大型Python應(yīng)用時(shí)特別有用,可以讓每個(gè)文件既可以獨(dú)立運(yùn)行,也可以作為模塊被其他文件導(dǎo)入。 總結(jié):
          這行代碼的作用是判斷當(dāng)前運(yùn)行的是主程序還是被導(dǎo)入的模塊。
          推薦閱讀:
          1. 用 Python 破解老王家的 Wi-Fi 密碼,刺激!

          2. 中國(guó)程序員,獨(dú)立開發(fā)9年的軟件,被Redis公司收購(gòu)

          3. 公眾號(hào)AI爆文寫作訓(xùn)練營(yíng)



          歡迎添加微信與我交流
          圍觀朋友圈~
          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲四虎影院 | 日本一区二区三区免费视频 | 欧美成在线观看 | 免费无码视频在线播放 | 大香蕉免费网 |