鱼C论坛

 找回密码
 立即注册
查看: 1000|回复: 3

关于循环import的问题

[复制链接]
发表于 2018-7-19 22:22:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小小小小的鱼丶 于 2018-7-19 22:24 编辑
  1. # a.py
  2. import b

  3. def x():
  4.     print('x')
  5. b.y()

  6. # b.py
  7. import a
  8. def y():
  9.     print('y')

  10. a.x()
  11. 已知上述会造成循环嵌套。
  12. 那么使用if __name__ == "__main__":来避免这个问题。
  13. 原理是不是import a,b以后,程序重新执行了
复制代码

  1. # a.py
  2. import b

  3. def x():
  4.     print('x')
  5. if __name__ == "__main__":
  6.         b.y()

  7. # b.py
  8. import a
  9. def y():
  10.     print('y')

  11. print("this:",__name__)
  12. if __name__ == "__main__":
  13.         a.x()

  14. #执行b.py,输出
  15. this: b
  16. this: __main__
  17. x
  18. 原理是不是import a,b以后,程序重新执行了
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-20 08:34:04 | 显示全部楼层
这里应该没有循环嵌套的问题,因为导入后可以用文件名作为作用域的标识
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-20 12:57:15 | 显示全部楼层
BngThea 发表于 2018-7-20 08:34
这里应该没有循环嵌套的问题,因为导入后可以用文件名作为作用域的标识

有的。这是小甲鱼课后习题51讲的动动手。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-25 20:24:32 | 显示全部楼层
小小小小的鱼丶 发表于 2018-7-20 12:57
有的。这是小甲鱼课后习题51讲的动动手。。

我还没有学到那里,不过你给的代码确实不能循环嵌套,应该是你的缩进写错了
b.y()
a.x()
应该和print一个缩进。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 21:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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