首頁 >後端開發 >Python教學 >Python中的main方法怎麼使用

Python中的main方法怎麼使用

王林
王林轉載
2023-05-05 13:25:063146瀏覽

正文開始

if name == "main":可以看成是python程式的入口,就像java的main()方法,但不完全正確。

事實上python程式是從上而下逐行運行的,在.py檔案中,除了def後定義函數外的程式碼都會被認為是「main」方法中的內容從上而下執行。如果只是寫個偉大的"hello world",不想寫函數的話,僅僅是print(‘hello world’)就可以,這就是一個“程序”,不需要所謂的“main”方法入口。當然如果是測試函數功能就需要在.py檔中寫上if name == "main",再呼叫函數。

例如如下hello.py檔:

print("first")
 
 
def sayHello():
    str = "hello"
    print(str);
    print(__name__+'from hello.sayhello()')
 
 
if __name__ == "__main__":
    print ('This is main of module "hello.py"')
    sayHello()
    print(__name__+'from hello.main')

 運行結果:

first
This is main of module "hello.py"
hello
__main__ from hello.sayhello()
__main__ from hello.main

懂我意思吧?先執行的第一行print再執行「入口」中的東西

話說回來,if name == "main"這句話是個什麼意思呢?

name__其實是內建屬性,指示目前py檔案呼叫方式的方法。當上述例子運作的時候,整個程式中不管是哪個位置的__name__屬性,值都是__main,當這個hello.py檔案作為模組被導入到另一個.py檔案中(即import)比如說world .py,而你執行的是world.py,此時hello.py中的__name__屬性就會變成hello,所謂的入口因為if判斷失敗就不執行了

所以if語句的判斷成功虛擬了一個main()方法。

說到了phthon是逐行執行的,所以當它讀到import hello的時候,也會執行hello.py,例如運行如下world.py檔:

import hello#上一个例子的hello.py
 
if __name__ == "__main__":
    print ('This is main of module "world.py"')
    hello.sayHello()
    print(__name__)

執行結果:

first
This is main of module "world.py"
hello
hellofrom hello.sayhello()
main

可以看到hello.py中的第一行print(‘first’)直接被執行了,並且hello.py中的__name__輸出的也是hello,world.py中的name輸出的是__main__

#

以上是Python中的main方法怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除