Chinaunix首页 | 论坛 | 博客
  • 博客访问: 306438
  • 博文数量: 35
  • 博客积分: 825
  • 博客等级:
  • 技术积分: 913
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-11 09:44
文章分类

全部博文(35)

文章存档

2013年(10)

2012年(24)

2010年(1)

我的朋友

分类: Python/Ruby

2012-10-23 15:19:22

import可以有一下几种形式:

  • import A (推荐都使用这种方式)

        将A导入到当前的namespace

        变种可以时 import A.B.C.D 如果是这种情况 ABC必须是Package 而D只能是一个模块 或者时一个Pakcage


  • from A import B

        将B导入到当前的namespace 当改变B时 对B作出的修改不会影响到A.B


  • X = __import__('X') (运行时才知道X的名称)


  • from A import *

        将A中所有的public name引入到当前的namespace public name在这里指的是name明称不以_(下划线)开头的那些name



import vs loading


一个模块不管被imoprt多少次 它只会被load一次 如果有执行代码在这个模块里面 那么只有第一次被加载的时候会运行 之后import则不会去运行未包装的执行代码



What does python do to import a Module?

1, check sys.modules to see if module is already imported, if that's the case, python will use the existing module object as is.

2, otherwise, create a new , empty module object

3, insert that module in sys.modules

4, Load the module code object

5, Execute the module code object in the new module's namespace. All variables assigned by the code will be available via the module object.

阅读(1656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~