zoukankan      html  css  js  c++  java
  • 模块和包

    模块的定义:一个模块就是一个包含pytho代码的文件, 后缀名是.py,模块就是一个python文件

    如何使用模块:
    - 假如模块名称直接以数字开头,需要借助importlib帮助
    - 语法
    import module_name
    import 模块 as 别名
    from module_name import func_name, class_name
    from module_name import *

    if __name__ == "__main__"的使用:
    - 当模块被直接运行时,该行代码下的代码块将被运行,当模块是被导入时,下面的代码块不被运行
    - 建议所欲程序的入口都以此代码为入口(参考资料:https://blog.csdn.net/yjk13703623757/article/details/77918633/)

    模块的搜索路径:

    - 什么是模块的搜索路径:加载模块的时候,系统会在这些地方寻找此模块
    - 获得系统默认的模块搜索路径的方法:
    import sys
    sys.path 
    - 添加搜索路径的方法:
    sys.path.append(dir)
    - 模块的加载顺序:
    1. 搜索内存中已经加载好的模块
    2. 搜索python的内置模块
    3. 搜索sys.path路径

    包的定义:包是一种组织管理代码的方式,包里面存放的是模块

    包的结构:

    |---包名
    |---|--- __init__.py 包的标志文件
    |---|--- 模块1
    |---|--- 模块2
    |---|--- 子包名(子文件夹)
    |---|---|--- __init__.py 子包的标志文件
    |---|---|--- 子包模块1
    |---|---|--- 子包模块2

    如何使用包:
    - import package_name
    该方法直接导入一个包,可以使用__init__.py中的内容
    - import package_name as 别名
    具体用法跟作用方式,跟上述简单导入一致
    注意的是此种方法是默认对__init__.py内容的导入
    - import package.module
    导入包中某一个具体的模块
    - import package.module as 别名
    - from package import moudle
    - from package import module1, module2, module3, .....
    上述俩种导入方法不执行`__init__`的内容
    - from package import *
    导入当前包'__init__.py'文件中所有的函数和类
    可以直接使用'__init__.py'文件中的函数、类、变量
    func_name()
    class_name.func_name()
    class_name.var
    - from package.module import *
    导入包中指定的模块的所有内容
    可以直接使用模块中的函数、类、变量
    func_name()
    class_name.func_name()
    class_name.var

    __all__的使用:
    表示在使用from package import * 的时候,* 可以导入的内容
    - `__init__.py`中如果文件为空, 或者没有 `__all__`, 那么只可以把`__init__`中的内容导入
    - `__init__` 如果设置了`__all__`的值,那么则按照`__all__` 指定的子包或者模块进行加载,如此则不会载入`__init__`中的内容
    使用方法:__all__=['module1', 'module2', 'package1',.....]

  • 相关阅读:
    机器学习-聚类问题
    机器学习--回归问题
    CreateRemoteThread盲注提权原理分析
    Linux下进程隐藏的方法及其对抗
    常见未授权访问漏洞总结
    Windows日志识别入侵痕迹
    打造自己的弱口令扫描工具
    Linux 命令被劫持,应急处理办法
    攻击Java Web应用--思维导图
    新型横向移动工具原理分析、代码分析、优缺点以及检测方案
  • 原文地址:https://www.cnblogs.com/wjw2018/p/10514145.html
Copyright © 2011-2022 走看看