Python模块

Python模块

模块介绍

  • 概念
    • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
  • 作用
    • 模块让你能够有逻辑地组织你的 Python 代码段。
    • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
    • 模块能定义函数,类和变量,模块里也能包含可执行的代码。

模块使用

  • 模块的引入

    • 引入语法
    import module1[, module2[,... moduleN]
    导入多个模块的话,逗号隔开就可以
    比如要引用模块random,就可以在文件最开始的地方用 import random 来引入。
    
    • 调用语法
    模块名.函数名(参数)
    print(random.randint(1,6))
    

注意:一个模块只会被导入一次,不管你执行了多少次import

  • 模块中函数,变量,类的引入

    • from…import 语句 语法
    from modname import name1[, name2[, ... nameN]]
    
    • from…import 语句 案例
    from MyTools import  showTenRandomNumber,showTenRandomNumber1
    #Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中
    导入之后,被导入的方法可以直接使用方法名完成调用,不再需要模块名
    showTenRandomNumber()
    showTenRandomNumber1()
    
  • 模块中所有内容的引入

    • from…import * 语法
    from modname import *
    
    • from…import * 案例
    from  MyTools import *
    # 直接通过函数名就可以完成调用
    showTenRandomNumber()
    showTenRandomNumber1()
    print(PI)
    

自定义模块的制作

  • 封装任意一个工具类()

  • 类似于java中的导其他类

    MyMath工具类

    ​ def add()

    ​ return a+b

    其他类调用

    import MyMath

    ​ print(MyMath.add(1,2))

模块的测试

  • 测试代码
在模块中,完成代码的测试
  • 使用模块
导入模块,发现模块中的测试代码会先执行一次,
解决方案:给测试代码加判断条件:    
if __name__ == '__main__':
    pass
__name__ :python解释器主动执行的代码才会为'__main__'
  • __all__的用法(python3之后不建议使用)

    • import 不受影响
    • from 模块 import *
    使用from 模块  import *  只会导入__all__中包含的方法
    __all__ = ['showTenRandomNumber']
    

Python中的包

  • 概念
包是一个分层次的文件目录结构,它定义了一个由模块及子包,
和子包下的子包等组成的 Python 的应用环境,包中要包含一个__init__.py模块
  • 新的模块名
包名.模块名
  • 包中模块的导入方式
import package1.module1
或者
from  package1 import module1
  • 包中数据的访问方式
package.module1.moduleTest1()
  • _ _ init_ _.py 的内容
__init__.py 也是一个模块,可以在模块中写任意代码
首次使用包的时候,__init__.py会默认执行一次
也可以写:
from . 模块1 import *
from . 模块2 import *
这样在导入包的时候,__init__.py中的代码会默认执行

这样的好处是: 可以直接导入包
弊端,如果两个包中有同名变量,会出问题

模块的发布

  • 为什么要发布

    • 查找顺序(sys.path)
    • 安装到系统目录下
  • 怎么发布?

    • 要发布的目录结构(uft-8格式)
    |----setup.py
    |----package1
          |----module1
          |----module2
    |----package2
          |----module3
          |----module4
    
    • 编辑setup文件
    from  distutils.core import setup
    setup(name='压缩包的名字',version='1.0',description='描述',
    author='大卫',py_modules=['package1.模块1','package1.模块2',
    'package2.模块1'])
    
    • 构建模块
    DOS窗口找到该文件
    python setup.py build   
    
    • 生成发布压缩包
    python setup.py sdist
    

自定义模块的安装、使用

  • 安装的方式
    • 找到模块的压缩包
    • 解压
  • 进入文件夹
  • 执行命令 python setup.py install
注意:如果在install的时候,
指定目录安装,可以使用
python setup.py install --prefix=安装路径
  • 直接将包复制到site-packages

列表推导式

#打印1-10
i = [i for i in range(1,11)]
print(i)

i = [i for i in range(1,11) if i%2 == 0]
print(i)
i = [i for i in range(1,11) if i%2 == 0 if i>5]
print(i)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值