python导入模块和包的使用

时间:2024-08-05 13:35:44

做项目的时候经常会要求做到模块化管理,即同样功能的代码放到同一个文件夹下,以便于方便管理,相信很多人对模块的引用都模糊不清,今天鄙人在这里就总结下。

一、模块导入的使用

  在同一个文件夹下有两个文件分别是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()