zoukankan      html  css  js  c++  java
  • 模块导入及使用,关键字,模块搜索路径,python文件的两种用途

    06.05自我总结

    一.模块导入及使用

    1.模块导入的两种方式

    我们拿time模块并使用其中的time功能进行举例

    a)第一种

    import time
    print(time.time)
    

    import首次导入模块发生了3件事:

    1. 打开模块文件
    2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3. 在程序中会有一个模块名称指向模块名称空间(如果他是import time as f)则是f指向模块空间
    4. 在当前执行文件中拿到一个模块名

    b)第二种

    from time import time
    print(time)
    

    from...import...首次导入模块发生了3件事:

    1. 以模块为准创造一个模块的名称空间
    2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3. 在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用
    • 优点:不用加前缀,代码更加精简
    • 缺点:容易与当前执行文件中名称空间中的名字冲突

    c)相同点和不同点

    相同点:

    1. 两者都会执行模块对应的文件,两者都会产生模块的名称空间
    2. 两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关

    不同点

    1. import需要加前缀;from...import...不需要加前缀

    2.关键字

    _all_

    如果一个模块的文件内写有_all_
    import 模块名字,默认导入所有模块
    而当模块中出现_all_时候,他只会导入_all_后面列表内的名称
    

    二.模块循环导入

    1.情况

    创建两个模块

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

    应用程序导入模块

    # run.py
    import m1
    

    2.解决办法

    第一种

    把m1中吧form m2 import x 将能找到的y放置form m2 import x,上面,让他在没有导入模块的时候就发现y从而不会寻找
    # m1.py
    print('from m1.py')
    y = 'm1'
    from m2 import x
    

    第二种

    把from m2 import x 用函数把他变成局部,文件加载顺序先全局在局部
    def f1():
        from m2 import x
    y = 'm1'
    f()
    

    三.模块搜索路径

    去内存中找去→内置模块中找→去环境变量中找

    打印环境变量

    import sys
    print(sys.path)
    

    四.python文件的两种用途

    1.模块文件

    2.运行文件

    搜索路径以运行文件为基准

    五.关键字_name_

    在执行文件中_name_会被读取成'__main__'

    在导入模块的时候__name__会变成模块名字

  • 相关阅读:
    ORACLE 查询所有用户调度作业
    【ORACLE】查看死锁进程并结束死锁的脚本
    Oracle12c中数据泵新特性之功能增强(expdp, impdp)
    oracle常用查询sql
    记一次异机rman还原后的操作
    Oracle 11gR2 RAC网络配置,更改public ip、vip和scanip
    记一次异机rman还原后的操作
    oracle通过impdp导入不同表用户、不同表空间的数据
    telegram即时通信软件和outline ---- by 余弦 by倾旋
    Vue -3:单文件组件
  • 原文地址:https://www.cnblogs.com/pythonywy/p/10980301.html
Copyright © 2011-2022 走看看