module

本文详细介绍了Python中模块和包的概念、使用方法及注意事项。包括如何导入模块、不同导入方式的特点,以及模块搜索顺序和name属性的作用。同时,还讲解了包的定义、组成和初始化文件的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

module

模块: .py结尾 的 python源代码文件
模块名: 一个标识符,所以需要标识符的命名规则
导入: 模块就像是工具包,想要使用工具包中的工具,就需要先导入
    全局变量 、函数、类 都是提供给外界直接使用的 工具
导入的核心: 就是将该模块执行一遍

模块导入

1)import导入
import 模块名1
import 模块名2
pep8:在导入模块时,每个模块应该独占一行

调用:模块名.工具 --->全局变量,函数,类

import 模块名 as 别名
模块别名: 大驼峰命名法
调用:别名.工具
4)from…import导入
from 模块名 import 工具名
从 某个模块中,导入 部分工具  
调用: 工具名(不需要模块名.)  ---> 全局变量,函数,类

注意:两模块中,存在 同名的函数, 后导入的模块函数 会覆盖先导入的模块函数
    解决方法:  使用 as 关键字 给工具起一个别名
        from func1 import hello as func_hello
        from func2 import hello

from 模块名 import *
从 某个模块中,导入 所有工具(all)
注意:不推荐使用,原因:出现函数重名时,不好排查

模块的搜索顺序

__file__: 每一个模块都有这个内置属性,可以查看模块的完整路径  print(模块名.__file__)

搜索顺序:
    1.当前目录
    2.如果没有,再搜索 系统目录
        开发时,给文件起名,不要和系统的模块文件重名(覆盖问题)

name属性

__name__是一个内置属性,记录着一个 字符串
    被其它模块导入: 就是模块名
    执行当前程序: __main__
    存在意义:__name__ 属性可以做到,测试模块的代码 只在测试情况下被运行,而在 被导入时不会被执行
通过判断__name__是否等于 __main__ 来决定 被导入时,测试代码不会执行
def main():
    测试代码

if __name__ == "__main__":
    main()

包(Package)

包: 一个包含 多个模块的 特殊目录
必须含有一个特殊的文件: __init__.py
命名方式: 与变量名一致, 小写字母_功能名
    eg: hm_message  (package name)
            __init__.py
            send_message.py
            receive_message.py

__init__.py
        指定对外界提供的模块列表
            里面写明了导入时,导入哪些模块  
        #从 当前目录 导入 xx模块
        from . import send_message
        from . import receive_message
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值