tft每日頭條

 > 圖文

 > if else在c語言中是什麼意思

if else在c語言中是什麼意思

圖文 更新时间:2024-12-18 02:30:37
if __name__ == "__main__":是什麼意思

每當Python解釋器讀取源文件時,它都會做兩件事:

  • 它設置了一些特殊變量,例如__name__,然後
  • 它執行文件中找到的所有代碼。
一 代碼樣例

假設代碼在一個叫做foo.py的文件中。

print("beforeimport") importmath print("beforefunctionA") deffunctionA(): print("FunctionA") print("beforefunctionB") deffunctionB(): print("FunctionB{}".format(math.sqrt(100))) print("before__name__guard") if__name__=='__main__': functionA() functionB() print("after__name__guard")

二 運行代碼

當Python解釋器讀取源文件時,它首先會定義一些特殊的變量。比如__name__雖然它長得很奇怪,前面和後面都有一個下劃線_,但是記得變量命名的規則嘛?下劃線_是可以出現在變量首字母的。所以,__name__仍然是一個變量,隻不過,是解釋器自己定義的。

2.1 作為主程序運行

當我們在命令行中使用python foo.py,或者直接在ide(比如pycharm)圖形界面裡點運行foo.py,那麼這時候,foo.py就是作為主程序運行的。

此時: Python解釋器會直接給_name_變量賦值為"_main_"

2.2 作為導入的模塊運行

如果有另一個程序,叫main.py,它裡面的代碼是這樣的。

importfoo

那麼如果我們在命令行中使用python main.py,則main.py作為主程序運行,而foo.py就是導入的模塊。

此時: Python解釋器會令__name__ = "foo"

2.3 執行模塊的代碼

如果使用主程序運行!python foo.py: 輸出如下:

beforeimport beforefunctionA beforefunctionB before__name__guard FunctionA FunctionB10.0 after__name__guard

如果使用主程序運行import foo: 輸出如下:

beforeimport beforefunctionA beforefunctionB before__name__guard after__name__guard

可以明顯看到,當使用主程序運行import foo時,沒有執行下面語句的内容,因為此時__name__ = 'foo'

if__name__=='__main__': functionA() functionB()

為什麼這樣工作?

有時我們想編寫一個.py文件,該文件既可以被其他程序和模塊導入,也可以作為主程序運行。 例子如下:

  • 這個文件是一個庫,可以被其他文件導入。但是我們希望可以在其中運行一些單元測試或演示。
  • 這個文件僅用作主程序,但具有一些單元測試的功能,一些測試框架(類似unittest和doctest)需要導入這個.py文件來測試。我們不希望,它隻是因為被導入為模塊,就直接運行整個腳本。
  • 這個模塊主要用作主程序,但它也為高級用戶提供了程序員友好的API。

所以,其實就是有的時候希望他在被導入的時候運行一些代碼,有的時候希望他作為主程序的時候運行另一些代碼。所以需要進行判斷。

if else在c語言中是什麼意思(if)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved