Python模块与包

模块与包

  • 模块定义

  • 模块分类

  • 如何导入模块

  • 包定义

  • 包的结构

  • 如何导入包中的模块

  • 导入方式的分类

  • python搜索路径

  • 如何查看python的搜索路径

  • 添加搜索路径

  • 单入口程序

code:_19modules_and_bags.py

# ***************************************************************
"""
python中的模块与包:
    模块定义:就是一个python脚本,后缀名为.py。
        模块中通常会定义相似的类、函数等代码内容,提供给别的程序引入后使用。
    模块分类:
        1.系统模块:在安装python环境时安装的,需要时使用import导入
            import logging,json,time...
        2.自定义模块:自己创建的python脚本,定义一些类和方法,提供给别的脚本导入后使用。
            自定义模块中,通常只是去定义类或函数、变量等,并不调用
            如果在自定义模块中想要测试时(只希望在本脚本中执行,不希望在调用本脚本的脚本中执行),则可以添加判断条件:
            if __name__ == '__main__':
                测试代码
    如何导入模块:
        1.import module
        2.from module import content
        3.from module import content as newname
    包定义:一个文件夹包含了多个python脚本。
    包的结构:
        包(文件夹)
        |------ __init__.py  # 包的标志性文件(可以有内容,也可以没有内容)
        |------ a.py  # a模块(文件)
        |------ b.py  # b模块(文件)
        |------ 。。。
        |------ 子包(文件夹中的文件夹)
        |------ | ------ __init__.py
        |------ | ------ c.py  # c模块(文件)
        |------ | ------ d.py  # d模块(文件)
        |------ | ------ ...
    如何导入包中的模块:
        1.导入__init__.py中的__all__中包含的全部模块
            from My import *
        2.导入包中的指定模块
            from My import a
        3.导入包中指定模块的指定内容
            from My.b import funcb
        4.导入包中的包
            from My.You import *
        5.导入包中的包中的模块
            from My.You import c
        5.导入包中的包中的模块的指定内容
            from My.You.d import funcd
    导入方式的分类:
        绝对导入:绝对导入会使用[搜索路径]去查找和导入指定的包或模块
            import 模块
            import 包
            import 包.模块
            from 模块 import 内容
            from 包 import 模块
            from 包.模块 import 内容
            等等
        相对导入:只能在非主程序的模块中使用,不需要直接运行文件
            from .包名/模块名 import 模块/内容:.代表当前
            from ..包名/模块名 import 模块/内容:..代表上一级
    python搜索路径:在导入模块或包时,程序查找的路径
        1.当前路径
        2.python的安装目录中
        3.python编译器指定的其他第三方模块位置
    如何查看python的搜索路径:
        import sys
        print(sys.path)
    添加搜索路径:
        sys.path.append(路径)---但是不推荐这样做
    单入口程序:整个程序是一个主程序文件在运行,其他脚本都封装成了包或模块。
    ATM/
    |----main.py  # 当前程序的主入口文件,单入口文件,唯一直接运行的文件,必须绝对导入其他需要的文件
    |----package/  # 主要程序模块包
    |----|----__init__.py  # 包的初始化文件
    |----|----View.py   # 视图函数模块
    |----|----Controller.py  # 控制器模块
    |----|----Card.py  # 银行卡模块
    |----|----User.py  # 用户模块
    |----databases/  # 数据存储文件夹
    |----|----user.txt
    |----|----user_card.txt
"""
import _20user_defined_module1
from _20user_defined_module1 import func as func_main
# from My import *  # 1
# from My import  # 2
# from My.b import funcb  # 3
# from My.You import *  # 4
# from My.You import c  # 5
from My.You.d import funcd  # 6
import sys

print("模块***************************************************************")
data1 = _20user_defined_module1.user_class()
_20user_defined_module1.func()
print(f"name = {_20user_defined_module1.name}")
func_main()
print("包***************************************************************")
# a.funca()  # 1
# b.funcb()
# a.funca()  # 2
# funcb()  # 3
# c.funcc()  # 4
# c.funcc()  # 5
funcd()  # 6
print("python搜索路径******************************************************")
print(sys.path)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jasmine-Lily

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

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

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

打赏作者

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

抵扣说明:

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

余额充值