做项目的时候经常会要求做到模块化管理,即同样功能的代码放到同一个文件夹下,以便于方便管理,相信很多人对模块的引用都模糊不清,今天鄙人在这里就总结下。
一、模块导入的使用
在同一个文件夹下有两个文件分别是main.py和module_file.py
module_file.py文件的内容
#!/usr/bin/env python # -*- coding:utf-8 -*- name = 'Eric.yue' def running(): print 'I am is running' def watching(): print 'I am watching'
那么在main中调用module_file的方法有几种:
1 #1、直接导入使用,导入的其实是模块(或者说赋给module_file这个变量),所以访问的时候要加模块名 2 3 import module_file 4 5 #访问其属性 6 print module_file.name #Eric.yue 7 8 #访问其方法 9 module.running() 10 module.watching() 11 12 #2、如果要直接调用 13 from module_file import * 14 #如果只想导入部分模块 15 from module_file import name,watching 16 17 running() 18 watching() 19 20 #如果有方法和main中的方法有冲突那么需要这么做 21 from module_file import running as mod_running 22 23 mod_running()
二、导入包的使用
python中的包 本质上就一个文件夹,里面必须包含一个__init__.py的文件。其实就是用来从逻辑上组织代码
创建一个包文件夹,package 里面包含一个__init_.py文件,在创建一个文件pack.py
#!/usr/bin/env python #-*-coding:utf-8-*- def pack_func(): print 'the first pack_func'
那么如果在main中调用package包的内容(导入包的本质就是执行该包下的__init__.py文件)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 from package import pack 5 6 pack.pack_func()
如果该包在多级目录下那么调用的时候,需要用点来做目录连接
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 from package.package_second import second 5 6 second.func_second()