什麼是if __name__ = "__main__" 啊??

Reading time ~1 minute

作者: 陳璿丞

if name == main

之前學Flask 常常會看到這一段的code, 但不知所以然。本著得過且過的心態。但這個問題一直困擾著我。其實google 一下就會有很多解答了喔。不過來看一下Python document 是怎麼說的:

The name attribute must be set to the fully-qualified name of the module. This name is used to uniquely identify the module in the import system.

那關於__mian__呢?

main’ is the name of the scope in which top-level code executes. A module’s name is set equal to ‘main’ when read from standard input, a script, or from an interactive prompt.

也就是說,所以有的module都有一個內建的__name__的屬性。

那什麼是main呢? 是用來檢查這段code是不是import而來的,如果是import來的,這裡的__name__ attribute就不會維持’main‘而是其他的了。

舉個例子來說好了:

# first.py
if __name__ == '__main__':
  print('這是來自本來的module~~')
else:
  print('這是別人家來的!!')
# second.py
import first
$python first.py
這是來自本來的module~~
$python second.py
這是別人家來的!!

28小時的2018 ruby&elixir conf TW

## 一直講話這次上台北僅有短短的28個小時,除了7小時睡覺之外,其他的時間要不是在和其他人聊天,不然就是聽其他人演講、聊天。我還記得三年前第一次參加的時候,一點都不敢和其他人講話,害不得找個地洞。這一次是一直提醒自己不要滑手機,要把握機會和不同的人聊天。這次有來自菲律賓、...… Continue reading

Elm的學習資源

Published on December 18, 2017