咸蛋之咸鱼翻身 发表于 2020-5-5 09:47:59

执行b程序,为什么a模块就导入完全了

在import b 之后程序不是又跳回b文件了吗,应该还没导入 x()吧

# a.py
import b

def x():
    print('x')

if __name__ == "__main__":
    b.y()

# b.py
import a

def y():
    print('y')

if __name__ == "__main__":
    a.x()

wuqramy 发表于 2020-5-5 10:07:16

根本没有执行到下一步
一直在来回import

atomloveanne 发表于 2020-5-5 10:22:04

请问目的是要做什么?

Hoiste 发表于 2020-5-5 11:06:31

wuqramy 发表于 2020-5-5 10:07
根本没有执行到下一步
一直在来回import

python内部会预防这种情况的,所以只会import一次

Hoiste 发表于 2020-5-5 11:08:25

本帖最后由 Hoiste 于 2020-5-5 11:10 编辑

我以前做过一张图解,看看能不能懂吧,按照箭头和标号的流程来看就好了,打开两者的思路是差不多的。

咸蛋之咸鱼翻身 发表于 2020-5-5 11:52:48

Hoiste 发表于 2020-5-5 11:08
我以前做过一张图解,看看能不能懂吧,按照箭头和标号的流程来看就好了,打开两者的思路是差不多的。

有点懂了,有心了
页: [1]
查看完整版本: 执行b程序,为什么a模块就导入完全了