• day 15


    01.模块的四种形式

    python解释器看成手机,pip看成应用管家,模块就是应用软件

    1. 模块类比

      1. 系统自带软件(系统自带,不需要安装)
      2. 现成软件(需要到应用管家下载,安装)
      3. 自定义的软件(自己编写的功能文件)
    2. 模块类型

      python模块文件==》XX.py

      1. 内置模块;python解释器自带的模块
      2. pip安装的模块;pip install XXX 或 pycharm内安装
      3. 自定义模块;自己用代码编写的实现某一功能的文件
      4. 包(模块);含有模块文件的文件夹

    02.模块的两种导入方式

    例;使用time模块中的sleep功能

    1. import

      1. 开辟一块内存空间,内存空间命名为time
      2. 把time.py中的所有代码读入名称空间,然后运行
      3. 通过time.sleep()的方法使用time模块中的方法
      4. 优缺点;
        1. 优点;一次性导入了.py文件中所有的功能,需要加前缀运行不会与自定义变量名冲突
        2. 缺点;使用时需要加前缀
    2. from time import sleep

      1. 开辟一块内存空间,内存空间命名为time
      2. 把time.py中的所有代码读入名称空间,然后运行
      3. 把sleep()功能读入当前运行文件多开辟的内存空间中,通过sleep()直接使用该方法
      4. 优缺点;
        1. 优点;使用方便,不需要加前缀运行(from XX import * ;导入所有功能)
        2. 缺点;容易与执行文件中定义的变量名冲突
    3. 自定制模块

      使用方法与上述两种相同

      自定制模块的用途;分文件储存代码--》函数与函数之间分开--》让代码更加清晰--》不同模块干不同的事情

    03.循环导入

    当我们定制两个.py文件出现下面的状况时就发生了循环导入

    重复导入相同名称的.py文件只会创建一个内存地址

    from XX import X 是在做两件事,当两件事都失败时报错

    # m1.py
    from m2 import y # 创建m2内存空间,让m1的内存空间得到y=20
    x=10
    print(x,y)
    
    # m2.py
    from m1 import x # 创建m1内存空间,让m2的文件内存得到x=10
    y=20
    print(x,y)
    

    顺序;我们运行m1.py文件 ——》创建m2内存空间,导入y失败——〉访问m1空间导入x失败——》继续运行导入y再次失败报错 ‘无法自m2导入y’

    破解方法

    # m1.py
    def f1():
        from m2 import y
    
        print('m1:', x, y)
    
    
    x = 10
    f1()
    
    # m2.py
    def f2():
        from m1 import x
    
        print('m2:', x, y)
    
    y = 20
    

    04.模块搜索路径

    内存——内置——自定义

    05.python文件的两种用途

    python文件既可以是执行文件,也可以是模块文件

    __name__=='__main__';文件为执行文件时
    文件为模块文件时__name__==文件名
    # __name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名
    
  • 相关阅读:
    简单布局2
    面试问题之操作系统:Linux下进程的内存结构
    面试问题之C++语言:说一说C++中四种cast转换
    面试问题之C++语言:说一下static关键字的作用
    面试问题之操作系统:动态链接库和静态链接库的区别
    面试问题之数据结构与算法:简述深度优先遍历和广度优先遍历
    面试问题之C++语言:C与C++的区别
    面试问题之C++语言:Overload、Override及Overwirte的区别
    面试问题之计算机网络:TCP三次握手四次挥手
    面试问题之计算机网络:TCP滑动窗口
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11595729.html
Copyright © 2020-2023  润新知