对python同一个文件夹里面不同.py文件的交叉引用方法详解


Posted in Python onDecember 15, 2018

比如有两个模块,一个aa.py,一个bb.py 代码如下:

aa.py:

#encoding:utf-8

import bb

a=1

bb.py:

#encoding:utf-8

import aa

print aa.a

执行bb.py时,不能执行,打印错误 AttributeError: 'module' object has no attribute 'a'

原因:

如果执行bb的话,这时候bb是__main__,不是module,所以会执行到bb的from aa,这个时候python会执行aa.py,而aa.py一开始就是from bb,所以python又会去执行bb.py,因为bb.py的一开始就是from aa,并且因为之前执行过,所以这个时候aa已经在sys.module里面,所以python不会重新执行aa.py,而只是把sys.modules里面的aa返回给你,所以当执行到bb.py的print b 的时候,还没有执行aa.py里面的a=1,所以会有找不到a的attribute error

解决方案:

aa.py:

#encoding:utf-8

import bb

a=1

bb.py:

#encoding:utf-8

import aa

if __name__=="__main__":

 print aa.a

以上这篇对python同一个文件夹里面不同.py文件的交叉引用方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
使用graphics.py实现2048小游戏
Mar 10 Python
利用Python开发微信支付的注意事项
Aug 19 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
名片管理系统python版
Jan 11 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
Python 依赖库太多了该如何管理
Nov 08 Python
Python新手学习装饰器
Jun 04 Python
python 制作简单的音乐播放器
Nov 25 Python
python 如何引入协程和原理分析
Nov 30 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 #Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 #Python
对python当中不在本路径的py文件的引用详解
Dec 15 #Python
对python3 中方法各种参数和返回值详解
Dec 15 #Python
对python中的argv和argc使用详解
Dec 15 #Python
Python输出\u编码将其转换成中文的实例
Dec 15 #Python
对python:print打印时加u的含义详解
Dec 15 #Python
You might like
杏林同学录(七)
2006/10/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
深入理解Python中的super()方法
2017/11/20 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Django models filter筛选条件详解
2020/03/16 Python
python speech模块的使用方法
2020/09/09 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
最新计算机专业自荐信
2013/10/16 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
员工生日活动方案
2014/08/24 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
节水宣传标语口号
2015/12/26 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书