Python学习7-模块的定义和引用

来源:互联网 发布:中信淘宝v 编辑:程序博客网 时间:2024/05/17 09:27

已经学习了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 keyworddef 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', 'return', 'try', 'while', 'with', 'yield']>>>
  • Python使用import导入模块,导入后有一个指向该模块的变量,使用该变量调用模块中的方法。
  • Python中用”_xxx”方式区分私有和公开的函数和变量。(Python定义的私有函数或变量并非“不能”引用,而是“不应该”被引用)。

    2. 使用第三方模块

使用pip命令安装第三方模块。

安装Pillow模块,处理图片。

E:\>pip install PillowCollecting 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')>>>
原创粉丝点击