[問題] 關於import問題

作者: somoskylin (八七booboo)   2019-04-08 16:40:12
各位前輩好:
想請問一些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 使用
謝謝大家
作者: iloveelmo (瀨田宗次郎)   2019-04-08 17:08:00
可是print_something裡面做的事 不就是執行print_abc嗎
作者: somoskylin (八七booboo)   2019-04-08 17:11:00
我是想問我只有import print_something為什麼_print_abc的程式碼也會被執行為什麼不是 _print_abc not defined之類
作者: bibo9901 (function(){})()   2019-04-08 17:20:00
原因很明顯不是嗎? 你自己都講出來了
作者: somoskylin (八七booboo)   2019-04-08 17:23:00
是from 讀完全部檔案嗎,因為我不確定
作者: TakiDog (多奇狗)   2019-04-08 18:20:00
作者: somoskylin (八七booboo)   2019-04-08 18:55:00
謝謝
作者: aaron880221 (aaron)   2019-04-08 20:41:00
Python import是整個檔案全部都讀,不會因為你特別說要讀什麼他只讀那個,你可以在a.py最後印東西出來,你就知道什麼意思了
作者: s860134 (s860134)   2019-04-08 21:37:00
import 即執行 記住這件事就好
作者: TitanEric (泰坦)   2019-04-09 09:57:00
除非你寫在if name ==main 不然都會執行
作者: somoskylin (八七booboo)   2019-04-09 18:54:00
謝謝大大們

Links booklink

Contact Us: admin [ a t ] ucptt.com