HISIOISIH 发表于 2018-9-14 21:34:28

python 50课后

本帖最后由 HISIOISIH 于 2018-9-14 22:10 编辑

# a.py
from b import y
def x():
    print('x')

# b.py
from a import x
def y():
    print('y')
-------------------------------------
-------------------------------------
# a.py
import b

def x():
print('x')

# b.py
import a

def y():
    print('y')

a.x()

为什么第一个程序会出错 第二个就不会?   from import 和import什么区别

mulus 发表于 2018-10-25 20:51:17

我也想知道,看了解释没有看懂……

mulus 发表于 2018-10-25 21:00:35

我从网上找的解释,可能通俗一点,这样理解应该没毛病:
从报错提示中我们可以看出,a.py执行到"from b import y"时会跳转到b.py模块中,为了在b.py中找到y函数,解释器会自上而下的一行一行执行,当在b.py中执行到"from a import x"时又会跳转到a.py模块中进行搜索,如此循环反复,陷入死循环导致报错。

HISIOISIH 发表于 2018-11-7 19:51:57

mulus 发表于 2018-10-25 21:00
我从网上找的解释,可能通俗一点,这样理解应该没毛病:
从报错提示中我们可以看出,a.py执行到"from b im ...

哦 就是说from b import y 和from a import x会互相循环但是import a 和 import b 不会互相循环么
页: [1]
查看完整版本: python 50课后