python学习笔记-模块-20200311

模块

在Python中,一个.py文件就称之为一个模块(Module)

  • 使用模块的好处:提高了代码的可维护性;当一个模块编写完毕,就可以被其他地方引用;使用模块还可以避免函数名和变量名冲突
  • 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。即该“包”目录的包名不与别人冲突,那该包目录下的所有.py文件的模块名字都不会和别人冲突。
  • 如:顶层包名为mycompany,其中含有模块如下图所示:
    在这里插入图片描述
    此时abc.py模块的名字就变成了mycompany.abc,依此类推。
  • 同时还可以有多级目录,组成多级层次的包结构,如下图所示:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGkFZmap-1583918665763)(en-resource://database/678:0)]
    其中www.py的模块名为mycompany.web.www
    自己创建的模块不能和Python自带的模块名称冲突
  • python的内置函数
    在这里插入图片描述

总结

  • 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。
  • 创建自己的模块时,要注意:
    • 模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
    • 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

使用模块

应用

以内建的sys门票快为例,编写一个moduletest的模块:

#!/usr/bin/env python3    # 可以让这个moduletest.py文件直接在Unix/Linux/Mac上运行
# -*- coding: utf-8 -*-    # 表示.py文件本身使用标准UTF-8编码
'a test module'      #模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释
__author__='Yummy Lee'  #写入作者

import sys    # 使用sys模块的第一步是导入该模块

def test():
    args=sys.argv     #sys的argv变量,用list存储了命令行的所有参数
                           # argv至少有一个元素,因为第一个参数永远是该.py文件的名称
    if len(args)==1:
        print('hello,world!')
    elif len(args)==2:
        print('hello,%s' % args[1])
    else:
        print('too many arguments!')

if __name__=='__main__':    # 在命令行运行moduletest这个模块文件时,python解释器把一个特殊变量__name__置为__main__
    test()


a.python解释器中运行:

  • argv至少有一个元素,因为第一个参数永远是该.py文件的名称:
  • 在python解释器中运行python3 moduletest.py获得的sys.argv就是[‘moduletes.py’]
  • 运行python3 moduletest.py Michael获得的sys.argv就是[‘moduletest.py’, 'Michael]
    b.python交互环境中调用
  • 启动交互环境,导入moduletest模块:import moduletest
  • 执行test()函数
作用域

Python中,是通过_前缀来表示作用域

  1. 正常函数和变量名—公开—直接被引用:abc,x123
  2. 特殊变量__xxx__ —可用于文档注释:__author__ , __name__
  3. 变量_xxx,__xxx —非公开—如_abc,__abc等
  4. 可以将外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public

安装第三方模块

  • 在Python中,安装第三方模块,是通过包管理工具pip完成的。
  • Mac或者Linux用户可以跳过安装pip这一步骤
  • 查找是否安装pip:命令行输入pip
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkysOPfw-1583918665774)(en-resource://database/680:0)]

说明我的电脑已经安装了pip

  • 安装Pillow命令:pip install Pillow
安装常用模块

常用模块有:

  • Pillow
  • MySQL驱动程序
  • Web框架Flask
  • 科学计算Numpy等
    可以直接使用Anaconda(一个基于Python的数据处理和科学计算平台)安装,包含以上所有的第三方模块,下载时进入Anaconda官网下载即可。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3G29P6JU-1583918665783)(en-resource://database/682:0)]
模块搜索路径
  1. 默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:
import sys
sys.path

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Gbc0O36-1583918665784)(en-resource://database/684:0)]

  1. 如果我们要添加自己的搜索目录,有两种方法:
  • method1:直接修改sys.path,添加要搜索的目录
import sys
sys.path.append('/Users/Ming/my_py_scripts')

运行时修改,运行结束后失效

  • methor2:设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

该用户没有用户名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值