作者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/cn.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