博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第九章、模块的循环导入问题及模块的路径搜索
阅读量:5291 次
发布时间:2019-06-14

本文共 672 字,大约阅读时间需要 2 分钟。

目录

第九章、模块的循环导入问题及模块的路径搜索

一、模块的循环导入问题

1. 什么是循环导入

两个模块互相导入,形成导入循环

#m1.pyprint(x)from m2 import xy = 20
m2.pyprint(y)from m1 import yx = 1

2. 问题

如果运行m1.py,则会产生ImportError: cannot import name 'y

如果运行m2.py,则会产生ImportError: cannot import name 'x

3.解决方案

  1. 方案一:导入模块语句放在函数里,只要函数调用就可以运行执行导入

    #m1.pyprint(x)def func1():    from m2 import x    print(x) y =20
    #m2.pyprint(y)def func1(): from m1 import y     print(y) x = 1

2.方案二:导入之前定义变量,m1找到m2文件中的x后回到m1运行打印x,继续执行下面的代码

#m1.py1 print(x)2 3 y = 204 from m2 import x
#m2.py1 print(y)2 3  x = 14  from m1 import y

二、模块的路径搜索

一、模块的搜索路径顺序

内存--》内置--》自定义模块--》环境变量sys.path

要记住未来项目的执行文件一定要弄一个环境变量

转载于:https://www.cnblogs.com/demiao/p/11366322.html

你可能感兴趣的文章
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
查看>>
[原创]Java 的传值小例子
查看>>
【MySQL学习】安装和配置 服务无法启动 没有报告任何错误
查看>>
C# 修饰符
查看>>
JavaScript启示录
查看>>
我需要什么样的浏览器?
查看>>
取textaera里的值
查看>>
java设计模式1--工厂方法模式(Factory Method)
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
上海2017QCon个人分享总结
查看>>
HIVE快速入门 分类: B4_HIVE 2015-...
查看>>
Mysql安装方法及安装问题解决
查看>>
Java动态代理的两种实现方式:
查看>>
PHP trait
查看>>
Redis的常用命令(三)
查看>>
HDOJ 4749 Parade Show
查看>>