python编程第10讲——包和自定义模块
普及网络安全知识,推动信息技术发展。
为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。
欢迎来到灰帽程序员论坛,我们的网址是:
http://www.hmhacker.org
论坛是以技术交流为主(非商业性质论坛,不从事非法入侵活动)
《Python编程入门实践》进阶篇《python灰帽编程》
P ython灰帽编程1为什么要选择Python
http://v.youku.com/v_show/id_XNTA3NDI3MjQ0.html
python灰帽编程2多线程端口扫描器
http://v.youku.com/v_show/id_XNTA3Nzg1Mjgw.html
python灰帽编程3IP段端口扫描
http://v.youku.com/v_show/id_XNTA4NjM2MDY4.html
python灰帽编程4 生成字典(密码本)
http://v.youku.com/v_show/id_XNTA5MDc5NjIw.html
高清下载地址
http://pan.baidu.com/share/link?shareid=258308&uk=2147818530
大家好,我是小雨,QQ:798033502
今天给大家带来的教程是《Python编程系列教程第10讲——包和自定义模块》
简单来说,包就是一个目录,其中包含和一个__init__.py文件和一组模块。
比如我们有这样一组模块,用于读写不同类型的图形文件格式。比如Bmp.py、Jpeg.py、Png.py。那么我就可以将他们放到一个叫Graphics的目录里面。那么这个名为Graphics目录就变成一个包了。包的结构如下:
Graphics/
__init__.py
Bmp.py
Jpeg.py
Png.py
注意:通常系统内置的包都是小写的,为了避免命名冲突,通常我们自定义的包的名字首字母一般大写。
Import Graphics.Bmp
From Graphics import Bmp
From Graphics import Bmp as picture
通过这三种方式都可以导入包中的某个模块。
OK,这是导入一个模块,那么导入包中的所有模块咋办?
Import Graphics.Jpeg
Import Graphics.Png
那么假如这个包中有十几个模块,我们还要这样一个一个导入吗?
在说这个问题之前,我们先来说一下__init__.py这个文件。
__init__.py是包的初始化文件,一般情况下我们不需要为其添加任何代码。若想在初始化包的时候有特殊操作,我们就可以把这些操作写到__init__.py这个文件下面。
在__init__.py这个文件中,我们可以给特殊变量__all__赋值。
__all__=[“Bmp”,”Jpeg”,”Png”]
之后我们可以使用from Graphics import *这种方式来导入包中的模块。这种语法格式直接导入了在__all__列表中指定所有模块。
下面我们自己定义一个模块取名叫GetIpMac.py,用于获取本机IP和Mac地址。
# *__coding: UTF-8__*
import socket
import uuid
def getinfo():
myip=socket.gethostbyname(socket.gethostname())
print("本机IP地址是::"+myip)
node=uuid.getnode()
mac=uuid.UUID(int=node).hex[-12:]
print("本机Mac地址是:"+mac)
视频地址:
http://www.56.com/u80/v_ODU5MDkwMTM.html
http://v.youku.com/v_show/id_XNTA5NTUyNDgw.html
实体书籍和电子书购买请到
http://itbook.taobao.com/