对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使用CMD模块更优雅的运行脚本
May 11 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
通过实例解析Python调用json模块
Dec 11 Python
基于python实现语音录入识别代码实例
Jan 17 Python
Django通过json格式收集主机信息
May 29 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Django日志及中间件模块应用案例
Sep 10 Python
Selenium 配置启动项参数的方法
Dec 04 Python
python计算列表元素与乘积详情
Aug 05 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
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
专题组织生活会思想汇报
2014/10/01 职场文书
欢迎词怎么写
2015/01/23 职场文书
教育读书笔记
2015/07/02 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS