日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用

發(fā)布時間:2023/12/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

      • 前言
      • 正文
        • .py源文件
        • 實例現(xiàn)象
        • 運行原理

前言

相信大部分開發(fā)者對于“程序入口”這個概念并不陌生。對于很多編程語言來說,程序都必須要有一個入口,比如既保留C語言面向過程思想又有面向?qū)ο笏枷氲恼Z言C++等,以及完全面向?qū)ο蟮木幊陶Z言Java、C#等,都需要一個main函數(shù)作為程序的入口,也就是程序的運行會從main函數(shù)開始。Java、C#中都必須要有一個包含main方法的主類作為程序的入口。
但python不同,它屬于腳本語言,不像編譯型語言那樣先將程序編譯為二進制文件再運行,而是動態(tài)逐行解釋運行,也就是從腳本第一行開始運行,沒有統(tǒng)一的入口 。

正文

.py源文件

一個Python源文件(.py)除了可以直接運行外,還可以作為模塊(也就是庫),被其他.py文件導(dǎo)入。
不管是直接運行還是被導(dǎo)入,.py文件的最頂層代碼都會被運行(Python用縮進來區(qū)分代碼的層次)。而當(dāng)作為模塊被導(dǎo)入時,我們可能只希望被導(dǎo)入文件中一部分代碼被運行。

實例現(xiàn)象

1. 假設(shè)現(xiàn)在有一個存儲常量圓周率Π的源文件constNum.py,里面只有一個打印常量的方法: PI=3.1415926535def main():print("Π的值為:",PI)main() 執(zhí)行結(jié)果:



2、還有一個是計算圓面積的源文件calculateArea.py,這個文件需要導(dǎo)入上面文件,僅使用里面的常量Π:

from constNum import PIdef calc_round_area(radius):return PI*(radius**2)def main():print("this round area is : ",calc_round_area(2))main() 執(zhí)行結(jié)果:

上面實例中,計算圓面積的源文件僅導(dǎo)入了常量Π,并沒有想使用常量文件中的方法,而程序?qū)嶋H的執(zhí)行結(jié)果可以看到,它把包含Π常量的文件中的方法也執(zhí)行了。這并不滿足需求。(實際需求是僅使用常量Π,不使用打印常量的方法,最終執(zhí)行結(jié)果只打印出面積)。

3、現(xiàn)在,我們對constNum.py文件進行修改,增加“if __name__ == '__main__':”,把自定義的打印方法寫在這個方法里面: PI=3.1415926535def main():print("Π的值為:",PI)if __name__ == '__main__':main() 再次運行計算圓面積源文件,輸出結(jié)果為:

增加 “ if name == ‘main’: ”后,可以看到輸出結(jié)果就是我們實際需求中的樣子了。

運行原理

前面說到一個.py文件的作用:①可以直接作為腳本執(zhí)行;②import到其他的python腳本中被調(diào)用執(zhí)行。
“ if __name__ == '__main__': ”的作用就是控制這兩種情況執(zhí)行代碼的過程。在“ if __name__ == '__main__': ” 下的代碼只有在第一種情況下(該文件作為腳本直接執(zhí)行)才會被執(zhí)行,而import到其他腳本中是不會被執(zhí)行的。

每個python模塊(.py文件)都包含內(nèi)置的變量_name_,當(dāng)模塊運行的時候,_name_等于文件 名(包含了后綴.py)。如果import到其他模塊中,則_name_等于模塊名(不包含后綴.py)。而“_main_”等于當(dāng)前執(zhí)行文件的名稱(包含了后綴.py)。所以,當(dāng)模塊被直接執(zhí)行時,__name__ == '__main__ 結(jié)果為true,就執(zhí)行對應(yīng)的方法;而當(dāng)模塊被import到其他模塊時,__name__ == '__main__結(jié)果為false,就不調(diào)用對應(yīng)的方法。

總結(jié)

以上是生活随笔為你收集整理的一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。