python导入模块和包的使用

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

一、模块导入的使用

  在同一个文件夹下有两个文件分别是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()
原文地址:https://www.cnblogs.com/gide/p/6069592.html