已经学习了Python的基本语法,执行示例时由于代码比较少,并不会存在什么问题。如果业务逻辑比较复杂,代码行比较多,这样写到一个文件中,会不容易维护,也不方便以后重用。还好,python和其他语言一样引入了模块概念。把具有相似功能的函数或者操作相同对象的函数拆分到不同文件中,一个文件就是一个模块。模块名为包名+文件名,如com/say目录下有sayHello.py模块名为com.say.sayHello。
1. 自定义模块
新建hello模块
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
'print hello world module'
_author_='oliver jim'
import keyword
def sayHello():
print ("hello world!")
def printKeyWords():
print(keyword.kwlist)
def _private():
print("private function")
def testPrivate():
_private()
第1行注释让hello.py文件直接在Unix/Linux/Mac上运行;
第2行注释表示.py文件使用UTF-8编码;
第4行是文档注释(任何模块代码的第一个字符串都被视为模块的文档注释);
第6行author变量指定作者名称;
第8行导入keyword模块;
往下的代码就是定义相关的函数变量操作:
sayHello()函数:打印hello world!信息。
printKeyWords()函数:引用keyword模块的所有关键字列表变量,并打印。
_private()函数:定义私有函数,并打印相关信息。
testPrivate()函数:为私有函数暴露接口。
使用:
进入Python交互环境中,导入hello模块,引用相关函数。
>>> import hello
>>> hello._private()
private function
>>> hello.testPrivate()
private function
>>> hello.printKeyWords()
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', '
def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'retu
rn', 'try', 'while', 'with', 'yield']
>>>
- Python使用import导入模块,导入后有一个指向该模块的变量,使用该变量调用模块中的方法。
Python中用”_xxx”方式区分私有和公开的函数和变量。(Python定义的私有函数或变量并非“不能”引用,而是“不应该”被引用)。
2. 使用第三方模块
使用pip命令安装第三方模块。
安装Pillow模块,处理图片。
E:\>pip install Pillow
Collecting Pillow
Downloading Pillow-4.2.1-cp36-cp36m-win32.whl (1.3MB)
。。。
使用Image处理1.jpg,保存为2.jpg
>>> from PIL import Image
>>> image = Image.open('1.jpg')
>>> print(image .format, image .size, image .mode)
JPEG (786, 398) RGB
>>> image .thumbnail((200,100))
>>> image .save('2.jpg','JPEG')
>>>