对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中的对象,方法,类,实例,函数用法分析
Jan 15 Python
Python的时间模块datetime详解
Apr 17 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
python之消除前缀重命名的方法
Oct 21 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
python中图像通道分离与合并实例
Jan 17 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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
深入理解php的MySQL连接类
2013/06/07 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
JS日历 推荐
2006/12/03 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Django 前后台的数据传递的方法
2017/08/08 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
电脑教师的自我评价
2013/12/18 职场文书
房屋租赁意向书
2014/04/01 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
创先争优承诺书
2015/01/20 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
《所见》教学反思
2016/02/23 职场文书
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server