作者somoskylin (八七booboo)
看板Python
標題[問題] 關於import問題
時間Mon Apr 8 16:40:12 2019
各位前輩好:
想請問一些python from... import..問題
提供例子
a.py
def _print_abc():
print("abc")
def print_something():
_print_abc()
b.py
from a import print_something
print_something()
結果是abc
為什麼我 import 的是 print_something
但是 _print_abc 的程式碼會被執行
import 不是只會匯入 print_something 的程式碼嗎?
還是其實from 的時候是先讀取 a.py 整份程式碼,然後再給我 print_something 使用
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.161.149
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1554712814.A.F54.html
1F:→ iloveelmo: 可是print_something裡面做的事 不就是執行print_abc嗎04/08 17:08
2F:→ somoskylin: 我是想問我只有import print_something為什麼_print_a04/08 17:11
3F:→ somoskylin: bc的程式碼也會被執行04/08 17:11
※ 編輯: somoskylin (117.19.161.149), 04/08/2019 17:12:09
4F:→ somoskylin: 為什麼不是 _print_abc not defined之類 04/08 17:13
5F:推 bibo9901: 原因很明顯不是嗎? 你自己都講出來了 04/08 17:20
6F:→ somoskylin: 是from 讀完全部檔案嗎,因為我不確定 04/08 17:23
7F:→ TakiDog: 是 04/08 18:20
8F:→ somoskylin: 謝謝 04/08 18:55
9F:推 aaron880221: Python import是整個檔案全部都讀,不會因為你特別說 04/08 20:41
10F:→ aaron880221: 要讀什麼他只讀那個,你可以在a.py最後印東西出來, 04/08 20:41
11F:→ aaron880221: 你就知道什麼意思了 04/08 20:41
12F:推 s860134: import 即執行 記住這件事就好 04/08 21:37
13F:推 TitanEric: 除非你寫在if name ==main 不然都會執行 04/09 09:57
14F:→ somoskylin: 謝謝大大們 04/09 18:54