做项目的时候经常会要求做到模块化管理,即同样功能的代码放到同一个文件夹下,以便于方便管理,相信很多人对模块的引用都模糊不清,今天鄙人在这里就总结下。
一、模块导入的使用
在同一个文件夹下有两个文件分别是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、直接导入使用,导入的其实是模块(或者说赋给module_file这个变量),所以访问的时候要加模块名 import module_file #访问其属性
print module_file.name #Eric.yue #访问其方法
module.running()
module.watching() #2、如果要直接调用
from module_file import *
#如果只想导入部分模块
from module_file import name,watching running()
watching() #如果有方法和main中的方法有冲突那么需要这么做
from module_file import running as mod_running 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文件)
#!/usr/bin/env python
# -*- coding:utf-8 -*- from package import pack pack.pack_func()
如果该包在多级目录下那么调用的时候,需要用点来做目录连接
#!/usr/bin/env python
# -*- coding:utf-8 -*- from package.package_second import second second.func_second()