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

    1、模块的定义:模块就是一系列功能的集合体,在python中,一个py文件就是一个模块,比如 module.py 其中module就是模块名。

    在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 

      1 使用python编写的.py文件

      2 已被编译为共享库或DLL的C或C++扩展

      3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)

      4 使用C编写并链接到python解释器的内置模块
    2、使用模块:
    2.1 使用import导入模块
    #首次导入模块会发生三件事:
    1、创建一个模块的名称空间。
    2、执行模块对应文件,将产生的名字存放于1中的名称空间
    3、在当前执行文件中拿到一个模块名,该模块名指向1的名称空间
    这个名字和变量名没什么区别,都是‘第一类的’,且使用模块名+‘.’名字的方式
    可以访问文件中定义的名字,执行文件名字与被导入模块中的名字来自
    两个完全不同的地方。
    ###之后导入相同的模块名,会直接引用直接的模块不会从新执行文件。
    模块中功能的执行始终以自己的名称空间为准。
    3、为模块起别名:
    我么为了更便捷的使用可以为模块 赋予更简洁的模块名。
    用 as 命令。
    import spam as sm

    print(sm.money)
    sm.read1()


    engine=input('>>: ').strip()
    if engine == 'mysql':
    import mysql as db
    elif engine == 'oracle':
    import oracle as db
    db.parse()
    二、使用模块之from ... import....
    1、from...import...的使用
    格式:
    1 from spam import read1,read2

    2、from...import 与import的对比
    #唯一的区别就是:使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀:spam.

    #from...import...的方式有好处也有坏处
    好处:使用起来方便了
    坏处:容易与当前执行文件中的名字冲突
    三、模块的查找顺序是:
    1、内存中已经加载的模块
    2、内置模块
    3、sys.path路径中包含的模块
    注意的是!!!sys.path的第一个路径是当前执行文件所在的文件夹

    import sys
    print('time' in sys.modules)
    import time
    time.sleep(2)
    print('time' in sys.modules)

    import sys
    sys.path.append(r'D:codeSH_fullstack_s1day14dir1')

    import m1
    m1.f1()
  • 相关阅读:
    Linux常用的命令
    Docker编写镜像 发布个人网站
    Linux安装docker笔记
    单例模式
    Cache一致性协议之MESI
    linux环境搭建单机kafka
    【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise
    【Ray Tracing The Next Week 超详解】 光线追踪2-3
    【Ray Tracing The Next Week 超详解】 光线追踪2-2
    【Ray Tracing The Next Week 超详解】 光线追踪2-1
  • 原文地址:https://www.cnblogs.com/yangwei666/p/8708578.html
Copyright © 2011-2022 走看看