Python import

1.四种方式可以import module

  • import X:在当前的namespace中创建X的reference。可以通过X.name来调用X中的实体
  • from X import *:将X中所有public对象的reference到当前namespace。直接通过name调用,X.name是无效的。
  • from X import a, b, c:与上面方式的区别是仅仅拿到a,b,c三个对象的reference。
  • X = __import__(‘X’):与import X效果一致。区别是可以通过string来import,这个用在运行期知道需要import的module。

2.循环import

# module X

import Y

def spam():
    print "function in module x"

当在main函数中import X,此时会将X挂到sys.modules下,紧接着发现import Y,所以又会将Y挂到sys.modules下。注意此时spam()还没有被执行到。如果module Y:

# module Y

from X import spam # doesn't work: spam isn't defined yet!

或者

# module Y

import X

X.spam() # doesn't work either: spam isn't defined yet!

这样都会失败。解决的办法是:

  1. 在module X中将import Y放到def spam()之后
  2. 定义一个module Z,将module Y中涉及对module X的调用放在其中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值