第五章-模块
来源:互联网 发布:韩国人交友软件 编辑:程序博客网 时间:2024/06/06 11:43
由于写的模块越来越多, 模块名重复的几率越来越大, Python又引入了按目录来组织文件的方法, 也就是包(Package)
引入了包之后, 模块的名称就变成了 包名.模块名
Package的目录结构中, 每个目录下要存放一个__init__.py的文件, 否则该目录就会被当成普通目录. __init__.py本身就是一个模块, 模块名就是目录名
1 使用模块
1.1 模块其实是一个py文件
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Michael Liao'import sysdef test(): args = sys.argv if len(args)==1: print('Hello, world!') elif len(args)==2: print('Hello, %s!' % args[1]) else: print('Too many arguments!')if __name__=='__main__': test()
第一行和第二行是标准的python注释
第四行是一个字符创, 表示模块的文档注释, 任意模块代码的第一个字符串都被视为模块的文档注释, 此内容可以通过__doc__来访问
第六行的__author__是作者信息
这就是标准的模板的结构
第八行表示导入sys模块, 导入之后就可以使用变量sys. sys模块里面有一个参数是argv, 它获取到了命令行的输入, 返回list类型, 第一个元素是文件名, 后面是写入的参数
第十九行的__name__只有在运行该函数的时候才会赋值为__main__
1.2 导入模块
导入模块有两种方法
方法一:
import 模块名字
这样的导入方法以后使用函数需要
模块名字.函数名字
方法二:
from 模块名字 inport 函数名字
这样就直接导入了某个函数, 使用的时候直接使用函数名就可以了
1.3 导入自己写的模块
由于模块就是一个py文件, 可以自定义一个文件自己来导入
其中import的时候会执行一遍模块文件
如下的test.py
#!/usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'weihuchao'def getMax(mList): print("getMax") return max(mList)print("hello test")
如下是导入test模块的代码
import testmaxValue = test.getMax([24,3,26,9,33])print(maxValue)
结果为
hello testgetMax33
2 私有变量
之前遇见过得__author__等是特殊的变量, 与此类似的还有_变量名的变量, 这种变量表示私有变量, 只能在模块内部使用.
尽管在Python中没有可以限制不使用私有变量或者私有函数, 但是在编程中尽量不要乱调用别的私有变量和函数
进一步的编程习惯是:
在模块中, 不公开的函数和变量全部使用私有变量, 用公开的函数来调用私有的成员.
def _private_1(name): return 'Hello, %s' % namedef _private_2(name): return 'Hi, %s' % namedef greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name)
3 安装第三方模块
在Python中安装第三方的模块是通过包管理工具pip来完成的
安装图片处理工具Python Imaging Library
pip install Pillow
生成缩略图
>>> from PIL import Image>>> im = Image.open('test.png')>>> print(im.format, im.size, im.mode)PNG (400, 300) RGB>>> im.thumbnail((200, 100))>>> im.save('thumb.jpg', 'JPEG')
其余还有MYSQL的驱动 mysql-connector-python, 用于科学计算的NumPy库 numpy, 用于生成文本的模板工具Jinja2
4 模块搜索路径
使用import导入模块的查找的顺序如下:
当前目录-->所有已安装的内置模块-->第三方模块
搜索路径在sys的path里
>>> import sys>>> sys.path
更改搜索目录的方法有两种
第一种: 直接修改sys.path
>>> import sys>>> sys.path.append('/Users/michael/my_py_scripts')
第二种: 修改环境变量PYTHONPATN
- 第五章 动力学模块
- 第五章-模块
- BOX2D 第五章 动力学模块
- 第五章 smtpd模块解析
- Box2d新系列 第五章 动力学模块
- Python第五章__模块介绍,常用内置模块
- [第五弹]base64模块
- 第五部分 模块
- [Java Concurrency in Practice]第五章 基础构建模块
- 第五章 网页下载器和urllib2模块
- python开发技术详解---第五章:模块与函数
- Python自动化第五周-模块
- Linux内核模块指南(第四章===>第五章完)。。。翻译完。。。
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第20章 启动流程、模块管理与 Loader
- [Java 并发] Java并发编程实践 思维导图 - 第五章 基础构建模块
- 学习python的第四十二天-第五章 模块与函数
- [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)
- Java并发编程实战(学习笔记四 第五章 基础构建模块 上)
- 第三章-高级特性
- Day10-Linux-awk和shell编程初步
- Day11-Linux-shell
- moveTaskToback退后台
- 第四章-函数式编程
- 第五章-模块
- 第六章-面向对象编程
- poj1840 Eqs(哈希表)
- 进入三级目录习题讲解
- 第七章-面向对象高级编程
- Day12~Day18-Python基础
- Day19-文件的操作
- Day20-函数初步
- Mooc爬虫01-request库