• python中的模块与包


    模块

    python模块就是python中以.py结尾的文件,它能定义函数、类和变量,以及可执行的代码

    模块的作用:利用模块可以使我们快速实现一些功能,比如time模块可以实现与时间相关的功能

    在模块的使用时我们需要先导入

    导入语法:

    • import 模块名
    • from 模块名 import 类、变量名、方法等
    • from 模块名 import *
    • import 模块名 as 别名
    • from 模块名 import 功能名 as 别名

    当你只导入一个模块名时,导入方法为import 模块名

    当你导入多个模块时,导入方法为import 模块1,模块2……

    在使用过程中我们可以发现,import 模块名 import *与import 模块名都是引入模块中的全部方法

    但是我们在使用import 模块名时调用方法需使用模块名.方法,而from 模块名 import *只需要写方法名即可

    例:

    fc4c27dc472440c695a0ecbd8b523694.jpg

     from 模块名 as 别名即给模块名起一个别名,在使用时可使用别名调用方法

    f9f70b73794345b08e8f61e62ef2461c.jpg

     自定义模块

    python中有许多模块供我们使用,但有时候它不能满足我们的要求时,我们可以自定义模块来满足我们的要求

    在使用自定义模块时,我们只需要正常写一个python文件就行,在使用时再导入写的模块即可

    当我们导入的两个模块中有同名函数时,我们调用此函数时,后导入的同名函数会覆盖前导入的同名函数

    1. from my_modle import dd
    2. from my_modle2 import dd
    3. print(dd(2,3))

    -1

    当我们在自定义模块中想测试一下自己写的代码时,需要使用if __name__ == 'main': 因为不使用它的话我们导入模块时会调用我们测试代码的代码

    1. #自定义模块
    2. def dd(a,b):
    3. return a+b
    4. print(dd(1,2))
    1. #测试的py文件
    2. import my_modle

    3

    1. #自定义模块
    2. def dd(a,b):
    3. return a+b
    4. if __name__ == "main":
    5. print(dd(1,2))
    1. #测试的py文件
    2. import my_modle

    在模块中我们使用from 模块名 import *时需注意__all__这个变量,因为*代表此变量,不使用__all__变量则表示所有方法,当我们用了__all__变量时,它写了哪些方法,我们也只能导入哪些方法

    1. #测试模块
    2. __all__ = ["add"]
    3. def add(a,b):
    4. return a+b
    5. def show():
    6. print("hello")
    7. if __name__ == "main":
    8. print(add(1,2))
    1. from my_modle import *
    2. print(add(1,2))

    3

    包相当于模块的文件夹,但它本质上也是一个模块

    包由一堆模块和__init__.py组成,它有__init__.py就是包,没有则是文件夹

    ​​​​​​​ 

    在我们导入包时,我们至少要导入一个模块或方法因为我们导入一个文件夹是没有用的

    • import 包名.模块名
    • from 包 import 模块名
    • from 包 import 方法
    • from 包 imoort *

    在包中也有__all__变量,它需要写在__init__.py中来控制*导入的内容

    第三方包

    当我们需要用第三方包时,我们可以在命令提示符中输入pip install 包名来下载第三方包,但是网速非常慢因为它默认连接国外网

    我们可以输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称来下载第三方包

    在pycharm中也提供了下载第三方包的功能

     

     

  • 相关阅读:
    PyQt5 & PyQt6 Designer 的安装
    基于AIE的贵州省FVC提取
    某物联网数智化园区行业基于 KubeSphere 的云原生实践
    【开源】基于JAVA的校园二手交易系统
    Python 虚拟环境管理工具(详细)
    prokka-原核及病毒基因组高效便捷注释
    docker-compose内网本地安装
    Windows访问centOS的Tomcat
    React props属性使用及子传父组件使用
    MongoDB与Pymongo深度实践:从基础概念到无限级评论应用示例
  • 原文地址:https://blog.csdn.net/Thewei666/article/details/126873109