Python 学习之模块与包

模块

简介

在 Python 中,一个 .py 文件就称之为一个模块(Module)。
使用模块有什么好处?

  • 大大提高了代码的可维护性;
  • 编写代码不必从零开始;
  • 可以避免函数名和变量名冲突

创建自己的模块时,要注意:

  • 模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
  • 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

使用模块

1. import 语句
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

import module1[, module2[,... moduleN]

实例:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import math

_author_ = 'Kevin_Gong'

print(math.pi)

结果:

3.141592653589793

2. from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:

from modname import name1[, name2[, ... nameN]]

实例:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from fibo import fib, fib2

_author_ = 'Kevin_Gong'

print(fib(500))

结果:

1 1 2 3 5 8 13 21 34 55 89 144 233 377

3. from … import * 语句
这个语句可以把某个模块中的所有方法属性都导入。

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from sys import *

print(version)
print(executable)

结果:

3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe

注意:这提供了一个简单的方法来导入一个模块中的所有方法属性。然而这种声明不该被过多地使用。

为了避免模块名冲突,Python 又引入了按目录来组织模块的方法,称为包(Package)。
就算有相同的模块名,也不会造成重复,因为包名不同,其实也就是路径不同。
每一个包目录下面都会有一个 init.py 的文件。
因为这个文件是必须的,否则,Python 就把这个目录当成普通目录,而不是一个包 。 init.py 可以是空文件,也可以有Python代码,因为 init.py 本身就是一个模块,而它对应的模块名就是它的包名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章