zoukankan      html  css  js  c++  java
  • 模块四种形式 、import和from...import..、模块的搜索路径、python文件的两种用途

    一、模块的四种形式

    1.内置模块:pyrhon解释器启动自带的模块,time/random/os/sys....

    2.第三方模块:pip install jieba   ...已被编译的共享库

    3.自定义模块:如果你自己写一个py文件,在文件内写入一堆函数,则它被称为自定义模块,即使用python编写的.py文件

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

    二、import.....和from.....import......

    import time  优点:永不冲突

    1.开辟内存空间,内存空间命名为time

    2.把time.py中所有代码读入名称空间,然后运行

    3.通过time.方法名 使用time模块中的方法  time.sleep(1)

    from time import sleep,time #特定导入一些功能  缺点:容易与当前执行文件中名称空间中的名字冲突

    from time import *     #导入所有的功能    不要使用

    1.开辟内存空间,内存空间命名为time

    2.把time.py中所有代码读入名称空间,然后运行

    3.把sleep()读入import 和 from...import.py中,因此可以直接使用方法名   如:sleep(1)

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

    如果导入的模块文件变量名与当前文件里面的变量名重复。在导入的文件开头加入__all__ = [abc,fi] #只允许导入列表内的变量,只对from...import*的限制

    三、循环导入:

    #m1.py
    pirnt('from1.py')
    from m2 import x
    y = 'm1'

    1.创建m2的名称空间

    2.执行m2.py,将执行产生的名字丢到m2.py

    3.在当前执行文件中拿到m2.x

    #m2.py
    print('form m2.py')
    from mi import y
     x = 'm2'

    1.创建m1的名称空间

    2.执行m1.py,将执行产生的名字丢到m1.py

    3.在当前执行文件中拿到m1.y

    如果运行m1.py,则会报错ImportError: cannot import name 'x'

    如果运行m2.py,则会报错ImportError: cannot import name 'y'

    解决方案:

    1.把两个文件的变量x,y都放到import 上面一行

    2.定义函数,在函数中导入   #  定义函数阶段只检测语法,不执行代码

    # m1.py
    print('from m1.py')
    
    
    def func1():
        from m2 import x
        print(x)
    y
    = 'm1'
    # m2.py
    print('from m2.py')
    
    def func1():
        from m1 import y
        print(y)
    
    x = 'm2'

    补充:

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

    运行m1.py打印结果为:

    m1: 10 20
    m2: 10 20
    m1: 10 20
     
    模块永远只会开辟一次 ; from m1 import 必须得执行m1.py中所有代码

    四、 模块的搜索路径

    内存----》内置-----》自定义

    打印环境变量:

    import sys

    print(sys.path)

    五、python文件的两种用途

    1.脚本,一个文件就是整个程序,用来被执行

    2.模块,文件中存放着一堆功能,用来被导入使用

    __name__ == '__main__'
    __name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名
     
     
    补充:pyinstaller模块  把文件编辑成exe格式
    cmd  pip install pyinstaller
    安装完成后,在pychom里面import pyinstaller
    运行代码:再进入需要转的文件路径下面 运行
    pyinstaller –i rose.ico(图片文件,百度转一个) –F rose.py(python文件)
    pyinstaller –i rose.ico –F rose.py

     转ico图片:找一张图片,再在网站上找生成图标ico的网址,把图片转成ico

  • 相关阅读:
    寻找两个有序数组的中位数
    JAVA设计模式(组合模式)
    excel 操作
    研究生英语-春
    cvs
    Spring课程安排
    Spring的事务管理
    在WEB项目中集成Spring
    计算机网络参考模型
    揭开5G神秘面纱
  • 原文地址:https://www.cnblogs.com/fjn839199790/p/11590747.html
Copyright © 2011-2022 走看看