Python模块的定义,模块的导入,__name__用法实例分析


Posted in Python onJanuary 07, 2020

本文实例讲述了Python模块的定义,模块的导入,__name__用法。分享给大家供大家参考,具体如下:

相关内容:

  • 什么是模块
  • 模块的导入
    • 模块的导入
    • 自模块的导入
      • 同级目录导入
      • 不同级目录导入
        • 目录内导入目录外
        • 目录外导入目录内
  • __name__

什么是模块:

在Python中,模块就是一个个方法和类的仓库,如果我们想要使用某个模块中的某个方法或类,那么我们就需要导入对应的模板。

【python有内置方法、类,所以有些方法我们并不需要导入模块】

模块的使用:模块.函数 ,     模块.类

#函数
import math
print(math.sqrt(3))
#类
import threading
a=threading.Thread()
print(a)

模块的导入:

 

  • 模块导入:

    • import 模块名
    #import 模块名
    import math
    print(math.sqrt(9))
    • from…import 语句:从模块中导入一个指定的部分,如类、方法,其中from…import * 代表导入全部内容
#from 模块名 import 类名、方法名
from collections import Iterable 
print(isinstance("abc",Iterable))
print(isinstance([1,2,3],Iterable))
  • from…import导入的时候还能给导入的部分起个自定义的名字:如:from … import funcA as fa
  • 自模块导入:

Python import 的搜索路径

1.在当前目录下搜索该模块

2.在环境变量 PYTHONPATH 中指定的路径列表中依次搜索 【可以从sys.path中获取】

import sys
print(sys.path)

----------
运行结果:
['J:\\HardWork\\Code\\python', 
'J:\\HardWork\\Code\\python',
 'I:\\python3\\python36.zip',
 'I:\\python3\\DLLs', 
'I:\\python3\\lib',
 'I:\\python3', 
'I:\\python3\\lib\\site-packages']

3.在 Python 安装路径的 lib 库中搜索

    • 同级目录导入:直接导入

     Python模块的定义,模块的导入,__name__用法实例分析

    Python模块的定义,模块的导入,__name__用法实例分析

    Python模块的定义,模块的导入,__name__用法实例分析

      • 不同级目录导入:将对应目录加入到sys.path中,再import

        • 目录内的b导入目录外的c

      目录结构:Python模块的定义,模块的导入,__name__用法实例分析

      c中内容:Python模块的定义,模块的导入,__name__用法实例分析

      b中如何导入c:

      import sys,os
      print(__file__)##这是当前文件的绝对路径
      parent_dir=os.path.dirname(__file__)##获得当前文件的目录
      pp_dir=os.path.dirname(parent_dir)
      sys.path.append(pp_dir)
      # print(sys.path)
      import c  #要导入c,必须将diff_dir加入sys.path中
          • 目录外的c导入目录内的d

        目录结构:Python模块的定义,模块的导入,__name__用法实例分析

        d中内容:Python模块的定义,模块的导入,__name__用法实例分析

        c中如何导入d:

        from d2 import d

        或:

        import d2.d

        结果:Python模块的定义,模块的导入,__name__用法实例分析


        __name__:

        由于模块既可以被导入,也可以被直接运行,为了区分什么是直接运行时运行的内容,所以有了__name__:

         

        当直接运行时,__name__是__main__:

        print("import C done")
        print(__name__)
        
        if __name__=='__main__':
         print("direct run")
        
        ---------------
        运行结果:
        import C done
        __main__
        direct run

        当用于导入时,__name__是当前导入的模块名,由于__name__不等于__main__,所以不会执行Python模块的定义,模块的导入,__name__用法实例分析

        import sys,os
        
        # print(__file__)##这是当前文件的绝对路径
        parent_dir=os.path.dirname(__file__)##获得当前文件的目录
        pp_dir=os.path.dirname(parent_dir)
        sys.path.append(pp_dir)
        # print(sys.path)
        import c  #要导入c,必须将diff_dir加入sys.path中
        
        
        
        
        ------------------
        运行结果:
        import C done
        c

        希望本文所述对大家Python程序设计有所帮助。

        Python 相关文章推荐
        Python发送form-data请求及拼接form-data内容的方法
        Mar 05 Python
        Queue 实现生产者消费者模型(实例讲解)
        Nov 13 Python
        Python与人工神经网络:使用神经网络识别手写图像介绍
        Dec 19 Python
        浅谈flask截获所有访问及before/after_request修饰器
        Jan 18 Python
        python如何实现反向迭代
        Mar 20 Python
        Python机器学习库scikit-learn安装与基本使用教程
        Jun 25 Python
        python防止随意修改类属性的实现方法
        Aug 21 Python
        浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
        Oct 25 Python
        python 成功引入包但无法正常调用的解决
        Mar 09 Python
        Python闭包与装饰器原理及实例解析
        Apr 30 Python
        Python Matplotlib绘图基础知识代码解析
        Aug 31 Python
        PyQt5结合QtDesigner实现文本框读写操作
        Jun 11 Python
        python 微信好友特征数据分析及可视化
        Jan 07 #Python
        Python打开文件、文件读写操作、with方式、文件常用函数实例分析
        Jan 07 #Python
        Python装饰器原理与基本用法分析
        Jan 07 #Python
        python保留小数位的三种实现方法
        Jan 07 #Python
        pytorch之ImageFolder使用详解
        Jan 06 #Python
        pytorch之inception_v3的实现案例
        Jan 06 #Python
        pytorch之添加BN的实现
        Jan 06 #Python
        You might like
        用js进行url编码后用php反解以及用php实现js的escape功能函数总结
        2010/02/08 PHP
        PHP加密扩展库Mcrypt安装和实例
        2013/11/10 PHP
        win7系统配置php+Apache+mysql环境的方法
        2015/08/21 PHP
        PHP定时任务获取微信access_token的方法
        2016/10/10 PHP
        PHP利用Socket获取网站的SSL证书与公钥
        2017/06/18 PHP
        dojo 之基础篇(二)之从服务器读取数据
        2007/03/24 Javascript
        用dom+xhtml+css制作的一个相册效果代码打包下载
        2008/01/24 Javascript
        简单的js分页脚本
        2009/05/21 Javascript
        JS getMonth()日期函数的值域是0-11
        2010/02/15 Javascript
        jquery的$getjson调用并获取远程的JSON字符串问题
        2012/12/10 Javascript
        js实现瀑布流的一种简单方法实例分享
        2013/11/04 Javascript
        举例详解JavaScript中Promise的使用
        2015/06/24 Javascript
        全系IE支持Bootstrap的解决方法
        2015/10/19 Javascript
        javascript事件模型介绍
        2016/05/31 Javascript
        js canvas实现擦除动画
        2016/07/16 Javascript
        vue.js将unix时间戳转换为自定义时间格式
        2017/01/03 Javascript
        什么是Vue.js框架 为什么选择它?
        2017/10/17 Javascript
        谈谈JS中的!!
        2017/12/07 Javascript
        Vue中$refs的用法详解
        2018/06/24 Javascript
        Vue infinite update loop的问题解决
        2019/04/23 Javascript
        聊聊鉴权那些事(推荐)
        2019/08/22 Javascript
        python任务调度实例分析
        2015/05/19 Python
        Ruby使用eventmachine为HTTP服务器添加文件下载功能
        2016/04/20 Python
        PyQt5 QSerialPort子线程操作的实现
        2018/04/21 Python
        Python+threading模块对单个接口进行并发测试
        2019/06/25 Python
        python与C、C++混编的四种方式(小结)
        2019/07/15 Python
        利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
        2020/01/20 Python
        利用keras加载训练好的.H5文件,并实现预测图片
        2020/01/24 Python
        师范生实习个人的自我评价
        2013/09/28 职场文书
        办公自动化毕业生求职信
        2014/03/09 职场文书
        班级读书活动总结
        2014/06/30 职场文书
        中秋节晚会开场白
        2015/05/29 职场文书
        公司欠款证明
        2015/06/24 职场文书
        机关干部正风肃纪心得体会
        2016/01/15 职场文书
        JVM入门之类加载与字节码技术(类加载与类的加载器)
        2021/06/15 Java/Android
        MySQL分区表管理命令汇总
        2022/03/21 MySQL