zoukankan      html  css  js  c++  java
  • 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__等于文件名
    
  • 相关阅读:
    【转】BP神经网络
    【转】Matlab的regionprops详解
    【转】本人常用资源整理(ing...)
    【转】LDA-linear discriminant analysis
    [转]推荐几个机器学习算法及应用领域相关的中国大牛:
    【转】机器学习资料推荐
    《转贴》机器学习 机器视觉 图像处理 牛人牛站
    [转]LLE
    UVA10651
    UVA10051
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11595729.html
Copyright © 2011-2022 走看看