鱼C论坛

 找回密码
 立即注册
查看: 5239|回复: 11

第50讲课后测试题第5题解决方法有问题

[复制链接]
发表于 2016-4-18 21:48:57 | 显示全部楼层 |阅读模式
3鱼币
以下是我a.py的内容:
import b
def x():
          print('x')
以下是b.py的内容:
import a
def y():
          print('y')

a.x()
但是在执行b.py的时候,提示如下错误:
Traceback (most recent call last):
  File "C:\Python34\b.py", line 1, in <module>
    import a
  File "C:\Python34\a.py", line 1, in <module>
    import b
  File "C:\Python34\b.py", line 5, in <module>
    a.x()
AttributeError: 'module' object has no attribute 'x
这是为什么?

最佳答案

查看完整内容

有可能是答案错了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-18 21:48:58 | 显示全部楼层
安以陌 发表于 2016-4-20 11:08
恩,你说的这个方法确实可行,但是我看小甲鱼给的参考答案里是按照我上边的代码来做的,难道是参考答案给 ...

有可能是答案错了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-19 22:46:55 | 显示全部楼层
你把a.py里面 import b 去掉就没问题了
我查了一下资料,和一些自己的理解:
我觉得是因为两个文件不可以循环导入,这样会造成死循环,所以会报错

你还可以在参考一下这个帖子
http://blog.csdn.net/zy416548283/article/details/45061271
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-4-20 11:08:23 | 显示全部楼层
shuofxz 发表于 2016-4-19 22:46
你把a.py里面 import b 去掉就没问题了
我查了一下资料,和一些自己的理解:
我觉得是因为两个文件不可以 ...

恩,你说的这个方法确实可行,但是我看小甲鱼给的参考答案里是按照我上边的代码来做的,难道是参考答案给错了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-21 17:05:55 | 显示全部楼层
答案出错那就好尴尬了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-3 23:36:54 | 显示全部楼层
a文件importb没有引入对应的模块 pyc会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-8 16:29:57 | 显示全部楼层
多导入了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-7 10:58:47 | 显示全部楼层
导入a、b文件时需要把后缀名也一起加进去吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-13 10:32:52 | 显示全部楼层
shuofxz 发表于 2016-4-19 22:46
你把a.py里面 import b 去掉就没问题了
我查了一下资料,和一些自己的理解:
我觉得是因为两个文件不可以 ...

CSDN这个帖子的代码运行过,结果还是报错。(我用的是Win10, python3.6。里面Print的语法已经修改过。)
print('---------this is module a.py----------')
def a():
    print("hello, a")
    from b import b 
    b()

a()

print('----------this is module b.py----------')
def b():
    print("hello, b")

def c():
    from a import a
    a()

c()

报错信息为:
======================== RESTART: F:\Python-Ex\aa.py ========================
---------this is module a.py----------
hello, a
Traceback (most recent call last):
  File "F:\Python-Ex\aa.py", line 3237, in <module>
    a()
  File "F:\Python-Ex\aa.py", line 3234, in a
    from b import b
ImportError: cannot import name 'b'
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-13 10:33:41 | 显示全部楼层
我也觉得答案有问题,反正两个模块互相调用,就会出问题。
去掉任何一个调用就没事了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 16:36:54 | 显示全部楼层
如何 楼主?明白原因了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 16:38:03 | 显示全部楼层
@zltzlt 请教一下老师,这个原因是什么?这是小甲鱼课后题给出的答案 是错的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表