Python 程式入口main函式

2021-08-04 08:14:14 字數 1214 閱讀 2064

在乙個.py檔案中,如果不是在定義函式,也就是說不是在def關鍵字的內嵌結構內,python會預設其餘部分函式是main函式,並自動執行,但正規工程中,一般都會將main函式寫為:

if __name__ == __main__

每個人都在寫,但很少有人問,其實這個用法很巧妙!

#hello.py

defsayhello

(): str="hello"

print(str);

if __name__ == "__main__":

print ('this is main of module "hello.py"')

sayhello()

當單獨執行該module時,比如單獨執行以上hello.py: python hello.py,則輸出

this is main of

module

"hello.py"

hello

可以理解為」ifname==」main「:」 這一句與c中的main()函式所表述的是一致的,即作為入口

當該module被其它module 引入使用時,其中的」ifname==」main「:」所表示的block不會被執行,這是因為此時module被其它module引用時,其name的 值將發生變化,name的值將會是module的名字。比如在python shell中import hello後,檢視hello.name

>>> 

import hello

>>> hello.__name__

'hello'

>>>

因此,在python中,當乙個module作為整體被執行時,moduel.name的值將是」main「;而當乙個 module被其它module引用時,module.name將是module自己的名字,當然乙個module被其它module引用時,其 本身並不需要乙個可執行的入口main了。可以說python中的這種用法很靈活啊。

main函式入口

最近在弄boost test單元測試的時候,遇到了乙個執行程式後就閃退掉的問題,找了好久才發現,原來是沒有進入到boost 自己的main函式中,因為鏈結的其他lib中,有乙個檔案也定義了main函式,編輯器最終是選擇了那個main函式作為程式的入口。在vs下 main函式 通常是 int tmai...

Linux上程式執行的入口 Main

main 函式,想必大家都不陌生了,從剛開始寫程式的時候,大家便開始寫main 我們都知道main是程式的入口。那main作為乙個函式,又是誰呼叫的它,它是怎麼被呼叫的,返回給誰,返回的又是什麼?這次我們來 一下這個問題。1.main 函式的形式 先來說說main函式的定義,較早開始寫c程式的肯定都...

Android NDK AS模擬main入口

新建studycpp包,然後在cmakelists.txt中引入studycpp包下所有檔案,如下 建立mylog.h用於列印日誌,如下 使用ndk裡面的日誌庫來列印 liblog.so include define tag hongx define logd android log print a...