如果您以这种方式修改了subtwo.py,那么它将起作用

import subone

print subone.a

当你在subtwo.py中执行subone.a时,你试图访问subtwo.py和命名空间“subone”中的命名空间subone,应该有一个属性“a”.

当你这样做 – 在subtwo.py中导入subone时,subone被添加到命名空间,subone命名空间有属性a.所以subone.a会起作用.

我还建议您使用dir()来查看如何添加命名空间.

在subtwo.py中,您可以执行以下操作:

print dir()

import subone

print dir()

print subone.a

同样,尝试在import语句之前和之后添加“print dir()”,这个想法应该变得清晰.

“import x” adds ‘x’ to the current modules

namespace while “from x import * ” will

add all the module level attributes

directly into current module namespace

所以在上面的main.py,subone.py和subtwo.py的第一个例子中,main.py中的命名空间将包含’subone’和’subtwo’,而subtwo.py将具有空命名空间,并且无法访问subone.a .

[编辑:更多解释]

考虑以下文件:

main.py

print "Before importing subone : ", dir()

import subone

print "After importing subone and before importing subtwo: ", dir()

import subtwo

print "After importing subone and subtwo: ", dir()

subone.py

a = 'abc'

subtwo.py

print dir()

import subone

print "module level print: ", subone.a

print dir()

def printX():

print subone.a

并运行main.py的输出:

Before importing subone : ['__builtins__', '__doc__', '__file__', '__name__', '__package__']

After importing subone and before importing subtwo: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'subone']

['__builtins__', '__doc__', '__file__', '__name__', '__package__']

module level print: abc

['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'subone']

After importing subone and subtwo: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'subone', 'subtwo']

Some Observations

>您会注意到导入模块subtwo.py,会立即执行print语句.>因此,当在main.py中导入subone和subtwo时,main.py的命名空间会被扩充.>这并不意味着将增加subtwo的命名空间.所以“a”只能通过subone.a在main.py中使用>当我们在subtwo.py中导入subone时,subwo的命名空间用subone增加,而subow.py中的module subone属性可通过subone.a获得.

python引用其他文件提示找不到模块_Python:为什么导入的模块不能引用另一个导入的模块?...相关推荐

  1. python终端命令执行提示找不到自定义模块

    python终端命令执行提示找不到自定义模块 描述一下遇到的问题: 平常在用pyhton做开发写代码的时候,我们大多数都是直接是编辑器中操作的(pycharm.eclipse.sublime等),其中 ...

  2. python进阶14文件路径(找不到文件)

    原创链接:python进阶14文件路径(找不到文件) 开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题. curdir,argv,file 举例: 文件1代码: 1 2 3 4 5 6 ...

  3. 解决PyCharm中opencv的cv2不显示函数引用,高亮提示找不到引用

    类似这种,鼠标放在高亮处会提示在 '__init__.py' 中找不到引用之类的,图截的别人的,我的已经弄好了截不了 先确定下imread()等方法是否能用,我发现我之前的问题其实是输入cv2.之后不 ...

  4. jar调用dll文件提示找不到指定的模块Unable to load library

    目录 问题描述 解决方案一 解决方案二 效果 补充说明 参考链接 问题描述 在Windows系统上,自己开发的需要使用JNA调用动态链接库dll文件的Swing项目(Java简易系统监视器system ...

  5. python 读写csv文件(创建、追加、覆盖)_python文件操作

    大神一看题目就知道用python中的string.split('\'),记得之前处理大量的文件的时候,有时候有几十万的文本文件,经常会读取获取名称,并且保存为名字一样的另外一种格式的文件 其实pyth ...

  6. python如何读取文件中第一行的元素_python txt读取第一行数据库

    带你读<Python数据分析与数据化运营(第2版)>之一:Python和数据化运营 点击查看第二章点击查看第三章Python数据分析与数据化运营(第2版) 宋天龙 著 第1章 Python ...

  7. dos系统不能安装python模块_dos窗口运行python文件提示找不到模块

    python day1 常用模块 键盘输入: python2.7 raw_input() python3 input() 键盘输入默认为字符串,可通过例如 int(input())方式,实现类型转换. ...

  8. python中打开文件提示编码当时错误_Python:文件编码错误

    从几天开始,我就在用Python编写的小程序中处理这个烦人的问题.在 我经常使用MediaWiki-最近我做文档从.doc到Wikisource的转换.在 在Libre Office中打开micros ...

  9. 无法删除文件提示找不到指定文件导致文件无法删除的解决方法

    之前下载个文件,资源有误,删除时发现无法找到该文件,只能眼睛看到,电脑却找不到路径. 试过安全模式删除,试过粉碎机,也试过DOS的del命令,都不得行.而注册表找不到对应键值. 最后网上看到这个方法, ...

最新文章

  1. 知识图谱学习笔记(1)
  2. 瑞雪时晴,不亦快哉 ——图灵十一月月刊
  3. python开发面试题目_Python测试开发面试笔试题
  4. faceboxes笔记
  5. python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
  6. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值...
  7. gitclone 一个tag的地址_一个无锁队列和FreeList实现
  8. Marketing Cloud tile的semantic信息
  9. php的变量、传值、传址、销毁变量
  10. JS静态变量和静态函数
  11. python函数的继承_Python 继承
  12. LeetCode 85.最大矩形
  13. Objective-C的动态特性
  14. Python根据mask在原图上进行标记
  15. 一个小问题(语法分析中的括号匹配)
  16. python物理模拟.pdf_用Python物理建模的第一本书终于来啦
  17. 小程序如何生成海报分享朋友圈
  18. 这可能是目前最好用的p2p外网访问内网软件(免费内网穿透)
  19. (十六)soul源码的自定义插件
  20. python股市回测程序

热门文章

  1. ASP.NET Core MVC 源码学习:Routing 路由
  2. asp.net core 认证及简单集群
  3. Exceptionless 本地部署
  4. 3d数学基础图形与游戏开发 英文版_1850款文字标题字幕条,AE图形预设包,logo生成神器...
  5. Sublime Text 3 import Anaconda 无法正常补全模块名解决办法
  6. 网页用数学公式编辑器 可以集成到FCKeditor
  7. ArcGIS实验教程——实验三十八:基于ArcGIS的等高线、山体阴影、山顶点提取案例教程
  8. 【ArcGIS风暴】数字化实验:数据采集与编辑完整操作流程
  9. Android之靠谱的Activity从底部向上弹出,finish从顶部向下消失(不黑屏)
  10. linux网络编程之用多线程实现客户端到服务端的通信(基于udp)