py模块的加载

一个文件可以当作模块的命名空间

通过import XXX导入

如果有多个模块呢,py指出可以使用文件夹(package)充当命名空间,如果是文件夹的情况下,解析器会寻找该目录下的__init__.py来进行导入什么文件(模块),并将他们挂在该以文件名(package name)为名的命名空间,

 

例如

在Phone文件加创建

 

这样就可以通过import导入Phone下中其所管理的模块

通过locals(),查看空间

细心的人会发现我们通过import一个文件和import一个"文件夹"(包)的区别,上面是__init__.py

其实__init__.py是充当py模块,也就是说他也是个py源文件而不同的是它导入了他需要的包,真确的说他是帮助Phone导入了Phone需要的包,他起了中间桥梁的作用

 

所以说他可以这样



from Pots import Pots
from Isdn import Isdn
from G3 import G3



def sayHello():
	print "I am from __init__.py"
import Phone


Phone.Pots()
Phone.Isdn()
Phone.G3()

Phone.sayHello()



既然__init__.py的作用是这样的,那么我们猜想多层级的包是不是也是这样的?(我只是一边学习py,一边构思和猜想,可能跟教材有出入,不要被我误导,毕竟我是喜欢猜想动手而不喜欢石板的看书)

既然__init__.py只是桥梁,我们就可以添加二级包了!

我们试一试(添加二级Phone_sub)



from Pots import Pots
from Isdn import Isdn
from G3 import G3

import Phone_sub

def sayHello():
	print "I am from __init__.py"


 

import Phone


Phone.Pots()
Phone.Isdn()
Phone.G3()

Phone.sayHello()

Phone.Phone_sub.Oppo()


 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值