zoukankan      html  css  js  c++  java
  • 115.包

    包是一个包含多个模块的特殊目录,目录下有一个特殊的文件 __init.py,包名的命名方式一般使用小写字母和下划线组成。

    示例:
    1.新建一个 hm_message 的 包;
    2.在目录下,新建两个文件 send_message 和 receive_message;
    3.在 send_message 文件中定义一个 send 函数;
    4.在 receive_message 文件中定义一个 receive 函数;
    5.在外部直接导入 hm_message 的包;

    包的导入

    import 包名.模块名

    # 导入包中模块语法格式1:
    import hm_message.send_message
    import hm_message.receive_message
    
    # 使用方式
    hm_message.send_message.send()
    hm_message.receive_message.receive()

    from 包名 import 模块名

    # 导入包中模块语法格式2:
    from hm_message import send_message
    
    # 调用方式
    send_message.send()

    from 包名 import *

    # 导入包中模块语法格式3:
    from hm_message import *
    
    # 调用方式
    send_message.send()

    在包中__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块。

    例子:

    # 工程文件夹 -> 包 -> 模块 -> 类 -> 函数(方法) -> 变量
    
    # 包的导入
    # 01: import 包名.模块名
    # import hm_message.send_message, hm_message.receive_message
    #
    # # 使用格式: 包名.模块名. 全局变量 | 函数 | 类
    # hm_message.send_message.send()
    # hm_message.receive_message.receive()
    
    # 02: from 包名 import 模块名
    # from hm_message import  send_message
    # 使用格式: 模块名. 全局变量 | 函数 | 类
    # send_message.send()
    
    # 03: 选择性导入 哪些被导入 是包中 __init__.py文件中 __all__ 进行约束的
    from hm_message import *
    # 使用格式: 模块名. 全局变量 | 函数 | 类
    receive_message.receive()

    包中的模块:

    __init__.py中:

    __all__ = ["receive_message"]
    send_message中:
    # 定义一个函数
    def send():
        print("发送消息")
    receive_message中:
    # 定义一个函数
    def receive():
        print("接收消息")
  • 相关阅读:
    Luogu4433:[COCI2009-2010#1] ALADIN(类欧几里德算法)
    Bzoj4766: 文艺计算姬(Matrix-tree/prufer)
    Bzoj5019: [Snoi2017]遗失的答案
    [HAOI2009]逆序对数列(加强)
    CF850F Rainbow Balls
    Luogu4887 第十四分块(前体)
    Luogu2483 [SDOI2010]魔法猪学院(可并堆)
    导数积分表
    Bzoj2395: [Balkan 2011]Timeismoney(最小乘积生成树)
    Min_25筛
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12883200.html
Copyright © 2011-2022 走看看