对python同一个文件夹里面不同.py文件的交叉引用方法详解
作者:Hi大少 发布时间:2023-12-24 00:54:27
标签:python,py文件,引用
比如有两个模块,一个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
来源:https://blog.csdn.net/u013359114/article/details/50688141
0
投稿
猜你喜欢
- 这也是老早前整理的了,也贴出来吧:1. showModalDialog和showModelessDialog的异同
- 本文解决问题:批量删除多行txt文本中的内容。思路:1.找出需要删除行的 id(就是需要删除那些行,把这是第几行给记录下来。)2.将原文本内
- <html><head><meta http-equiv="Content-T
- 本文说明向外扩展数据库系统的两个选项,从而实现更高的可扩展性:水平数据划分和垂直数据划分当我提到向外扩展数据库系统时,我实际上只是讨论对数据
- 本文将展示一个开源JavaScript库,该脚本库给AJAX应用程序带来了书签和后退按钮支持。在学习完这个教程后,开发人员将能够获得对一个A
- 相关验证码文章:asp制作验证码的方法 轩魂ASP中文验证码下载 先产生一个4位数的随机码源代码:ychar="0,1,2,3,4
- Microsoft® SQL Server™ 2000 由一系列产品组成,不仅能够满足最大的数据处理系统
- 来自Usability Post的Categories vs Tags作者认为“就博客而言,标签没有太大意义。”I don’t think
- 在Windows系统中用“Ctrl+C”和“Ctrl+V”就可以完成复制、粘贴工作,是不是很爽?其实使用a标签的accesskey属性也可以
- 本文实例为大家分享了python绘制汉诺塔的具体代码,供大家参考,具体内容如下源码:import turtleclass Stack: &n
- 1.运行效果如图所示2.实现代码如下<!DOCTYPE html><html><head> <me
- 文件:.wmv;大小:19,535KB;长度:00:26:39。 下载地址:SqlFunction_udf_Week.rar以下内容于201
- 效果图展示:源码查看【功能说明】利用insertBefore制作简单的循环插空效果【HTML代码说明】<ul class="
- 本文实例讲述了javascript设计模式 – 简单工厂模式。分享给大家供大家参考,具体如下:介绍:简单工厂模式是最常用的一类创建型设计模式
- 举例: 如:在字段名处输入:username,password,email,telphone 注意:不同的字段名用英文逗号隔开,且不支持星号
- 为什么我把自己机子上的数据库备份文件往另一台机子上还原不成功?可能是你在Restore的对话框中选项不正确。Restore 有三个选项,分别
- 发现ie7的空格间距要比ie6/firefox/opera的都要宽一点。比如有时候排版的时候,我会采用简单的空格来分隔。<div&nb
- ASP 错误代码 说明 ASP 0100 内存不足 ASP 0101 意外错误 ASP 0102 需要字符串输入 ASP 0103 需要数字
- 一个很不错的效果,用键盘的箭头键控制一个漂亮的箭头!也许能给你启发,做出一款有趣的小游戏呢!运行代码框<html xmlns:v=&q