python模块

模块

一、模块简述

在 Python 中,一个.py文件就称之为一个模块(Module)。其优势在于:

  • 大大提高了代码的可维护性;
  • 当一个模块编写完毕,就可以被其他地方引用;

二、模块搜索路径

1.默认情况下,Python 解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在 sys 模块的 path 变量中:
In [1]: import sys
In [2]: print(sys.path)
['', '/usr/bin', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/IPython/extensions', '/root/.ipython']
2.追加模块的默认搜索路径;
In [3]: sys.path.append('/mnt')
In [4]: sys.path
Out[4]: 
['',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/mnt']
3.将新的搜索路径加到最前面
In [5]: sys.path.insert(0,'tmp')
In [6]: sys.path
Out[6]: 
['tmp',
 '',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/mnt']

三、源模块

1.内置模块

如:time(时间模块)、functools(函数工具模块)、random(随机数)

2.自定义模块

含有自定义python脚本的目录、包均可

3.第三方模块
  • 需要联网安装,例如itchat模块;
  • 通过 setuptools 这个工具完成;
  • pip install 包名 或 pycharm中安装;

四、调用模块 import 关键字

1.itchat(第三方模块)
if __name__ == "__main__":   # 判断的是这个脚本内容是否为被导入的模块内容
##itchat(微信)模块
itchat.auto_login(hotReload=True)  ##自动登陆,hotReload(热加载)默认为False,加载上次缓存
itchat.send('hello itchat!', toUserName='filehelper')  ##微信助手发消息
name = itchat.search_friends('周楠')[0]['UserName']  ##查找好友的编码
itchat.send('Ready Go!!', toUserName=name)  ##给指定好友发消息
itchat.get_friends  ##查看好友信息,包括自己的;第一个索引就是用户自己的信息
itchat.get_chatrooms  ##新建群聊
2.微信简易自动回复
import itchat

@itchat.msg_register(itchat.content.TEXT)  ##装饰器,自动回复消息
def test(msg):  ##msg是字典类型,封装的是好友发送的信息
    test = msg['Text']  ##key:Text对应的value值为信息内容
    FromUser = msg['FromUserName']  ##FromUserName:发送信息的好友
    if 'age' in test:
        res = '20'
        # return '20'
    elif 'hello' in test:
        res = 'hello'
        # return 'hello'
    else:
        res = 'Get away...'
        # return 'Get away...'
    itchat.send(res, toUserName=FromUser)

itchat.auto_login(hotReload=True)  ##自动登陆
itchat.run()  ##运行
3.聊天内容出现的图片、视频保存
import itchat

@itchat.msg_register(itchat.content.PICTURE, itchat.content.VIDEO)
def download(msg):   ##装饰器,接收图片、视频
    msg.download(msg['filename'])  ##采用download内置方法下载

    with open(msg['filename'],'wb') as f :  ##open函数,写入图片或视频
         f.write(msg['filename'])

itchat.auto_login(hotReload=True)
itchat.run()

包 Package

一、包的目的

为了避免模块名冲突,Python 又引入了按目录来组织模块的方法,称为包(Package)

二、包的管理

1.创建包
  • 创建一目录为包名;
  • 在该文件夹下创建_init_.py文件存放包的信息,该文件可以为空;
  • 根据需要存放脚本文件,已编译的扩展及子包;
  • 可以用import,import as,from import等语句导入模块和包;
2.作用域

在 Python 中,是通过 _ 前缀来限制变量的使用范围,即作用域
比如author , name就是特殊变量的,func,__fun为私有函数,不能直接引用

3.包的调用
  • 包里的自定义脚本test:
x = 10
y = 20

def add(a, b):
    return a + b

def power(i, j=3):
    return i ** j

if __name__ == '__main__':   ##测试
    print(add(2, 4))
    print(power(2, 4))
  • 第1种调用方式:
# import pick01.test  ##调用时需要‘绝对路径’
>>> import pick01.test
>>> pick01.test.add(2,5)
7
  • 第2种调用方式:
# from pick01 import test  ##调用时,‘路径’短一些
>>> from pick01 import test
>>> test.power(4)
64
  • 第3种调用方式:
# from pick01.test import add  ##调用时,‘路径’最短
>>> from pick01.test import add
>>> add(1,5)
6

重要:包的调用,最常用的

  • _init_.py进行编辑:
from .test import *    ##导入当前路径下test模块的所有信息
  • 再次调用pick01包:
import pick01

print(pick01.x)   ##可直接使用test的所有内置信息
print(pick01.add())
print(pick01.power())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值