Python編程之順序執(zhí)行與程序的主入口詳解
前言
本章將會講解Python編程中的順序執(zhí)行與程序的主入口。
1.順序執(zhí)行(了解)
Python代碼在執(zhí)行過程中,遵循下面的基本原則:
- 普通語句,直接執(zhí)行;
- 碰到函數(shù),將函數(shù)體載入內(nèi)存,并不直接執(zhí)行
- 碰到類,執(zhí)行類內(nèi)部的普通語句,但是類的方法只載入,不執(zhí)行
- 碰到if、for等控制語句,按相應(yīng)控制流程執(zhí)行
- 碰到@,break,continue等,按規(guī)定語法執(zhí)行
- 碰到函數(shù)、方法調(diào)用等,轉(zhuǎn)而執(zhí)行函數(shù)內(nèi)部代碼,執(zhí)行完畢繼續(xù)執(zhí)行原有順序代碼
# #對于普通語句,代碼從上之下執(zhí)行
# print("hello world")
# print("hello world")
# print("hello world")
#此時(shí)代碼從上之下執(zhí)行,但是函數(shù)只有在調(diào)用時(shí)才會執(zhí)行
# def func_name():
# print("i am func name")
# func_name()
# class MyClass:
# print("i am myclass")
#
# def my_text(self):
# print("i am mytest ")
#
#
# d = MyClass()
# d.my_test()2.程序主入口(熟悉)
一個(gè) .py,除了可以被直接運(yùn)行外,還可以作為模塊, 被其他 .py文件導(dǎo)入。不管是直接運(yùn)行還是被導(dǎo) 入,.py 文件的最頂層代碼都會被運(yùn)行( Python 用縮 進(jìn)來區(qū)分代碼層次)。 但是當(dāng)一個(gè) .py 文件作為模塊被導(dǎo)入時(shí),我們可能不 希望一部分代碼被運(yùn)行。那么就可以將這部分代碼的 調(diào)用寫在主程序中。

def func_one():
print("func_one")
def func_two():
print("func_two")
func_one()
#程序的主入口
if __name__ == '__main__':
func_two()#當(dāng)我導(dǎo)入了demo19之后,運(yùn)行demo13的話,會執(zhí)行demo3內(nèi)部的代碼 import demo19 #執(zhí)行demo4,竟然只打印輸出了func_one
再來解釋下
所以上面代碼 if 的意思就是:如果運(yùn)行的程序是你自己,那么就 print....
假設(shè)運(yùn)行的是 xiaoming.py,那么就會執(zhí)行主函數(shù)
假設(shè)運(yùn)行的是 xiaohong.py,即使 xiaohong 導(dǎo)入了 xiaoming,也不會執(zhí)行 xiaoming.py 里面的主函數(shù)(main 函數(shù))
是否一定需要執(zhí)行入口(主函數(shù))
不一定
假設(shè)沒有主函數(shù),那么運(yùn)行 xiaoming.py 時(shí),就會至上而下,逐行運(yùn)行 xiaoming.py 的所有代碼
執(zhí)行入口的意義
將業(yè)務(wù)代碼寫在主函數(shù)上面,主函數(shù)用來調(diào)用有業(yè)務(wù)代碼,代碼結(jié)構(gòu)整潔
向 Java、C、Golang 看齊,他們都是要求一個(gè)程序必須有一個(gè)主執(zhí)行入口才能正確運(yùn)行
總結(jié)
到此這篇關(guān)于Python編程之順序執(zhí)行與程序的主入口的文章就介紹到這了,更多相關(guān)Python順序執(zhí)行與程序主入口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法,涉及Python同時(shí)進(jìn)行SQLServer與MongoDB數(shù)據(jù)庫的連接、查詢、讀取、寫入等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06
pycharm遠(yuǎn)程開發(fā)項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了pycharm遠(yuǎn)程開發(fā)項(xiàng)目的實(shí)現(xiàn)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
python+selenium行為鏈登錄12306(滑動(dòng)驗(yàn)證碼滑塊)
這篇文章主要介紹了python+selenium行為鏈登錄12306,使用python網(wǎng)絡(luò)爬蟲登錄12306,下面小編為大家分享一段代碼,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-02-02
Django基于Models定制Admin后臺實(shí)現(xiàn)過程解析
這篇文章主要介紹了Django基于Models定制Admin后臺實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Python通過30秒就能學(xué)會的漂亮短程序代碼(過程全解)
這篇文章主要介紹了Python之30秒就能學(xué)會的漂亮短程序代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Python Numpy運(yùn)行報(bào)錯(cuò)IndexError與形狀不匹配的問題解決辦法
在使用Numpy進(jìn)行數(shù)據(jù)處理和科學(xué)計(jì)算時(shí),IndexError和形狀不匹配(Shape Mismatch)是常見的錯(cuò)誤類型,這些錯(cuò)誤通常發(fā)生在數(shù)組索引操作、數(shù)組運(yùn)算或數(shù)組重塑時(shí),本文將通過一個(gè)具體的例子來詳細(xì)分析這些錯(cuò)誤的原因和解決辦法,需要的朋友可以參考下2024-07-07
vscode搭建python Django網(wǎng)站開發(fā)環(huán)境的示例
本文主要介紹了vscode搭建python Django網(wǎng)站開發(fā)環(huán)境的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

