[问题] 关于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