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创建线程示例
        May 06 Python
        从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
        May 23 Python
        python实现每次处理一个字符的三种方法
        Oct 09 Python
        Python实现的RSS阅读器实例
        Jul 25 Python
        python多进程实现进程间通信实例
        Nov 24 Python
        使用Python AIML搭建聊天机器人的方法示例
        Jul 09 Python
        对pyqt5之menu和action的使用详解
        Jun 20 Python
        Python 实用技巧之利用Shell通配符做字符串匹配
        Aug 23 Python
        python迭代器常见用法实例分析
        Nov 22 Python
        Python实现在Windows平台修改文件属性
        Mar 05 Python
        Keras 快速解决OOM超内存的问题
        Jun 11 Python
        Django项目在pycharm新建的步骤方法
        Mar 02 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
        PHP+MYSQL的文章管理系统(一)
        2006/10/09 PHP
        php中文本操作的类
        2007/03/17 PHP
        浅谈Eclipse PDT调试PHP程序
        2014/06/09 PHP
        屏蔽Flash右键信息的js代码
        2010/01/17 Javascript
        jQuery代码优化 选择符篇
        2011/11/01 Javascript
        javascript学习笔记(十八) 获得页面中的元素代码
        2012/06/20 Javascript
        script的async属性以非阻塞的模式加载脚本
        2013/01/15 Javascript
        IE6下opacity与JQuery的奇妙结合
        2013/03/01 Javascript
        javascript字符串替换及字符串分割示例代码
        2013/12/12 Javascript
        JS实现往下不断流动网页背景的方法
        2015/02/27 Javascript
        jquery实现叠层3D文字特效代码分享
        2015/08/21 Javascript
        js实现的万能flv网页播放器代码
        2016/04/30 Javascript
        js实现上传图片及时预览
        2016/05/07 Javascript
        BootstrapTable refresh 方法使用实例简单介绍
        2017/02/20 Javascript
        使用React代码动态生成栅格布局的方法
        2020/05/24 Javascript
        利用Python中SocketServer 实现客户端与服务器间非阻塞通信
        2016/12/15 Python
        Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
        2019/05/13 Python
        python中类的输出或类的实例输出为这种形式的原因
        2019/08/12 Python
        python opencv调用笔记本摄像头
        2019/08/28 Python
        Softmax函数原理及Python实现过程解析
        2020/05/22 Python
        sklearn线性逻辑回归和非线性逻辑回归的实现
        2020/06/09 Python
        Python魔术方法专题
        2020/06/19 Python
        Python如何实现远程方法调用
        2020/08/07 Python
        万得城电器土耳其网站:欧洲第一大电子产品零售商
        2016/10/07 全球购物
        英国领先的维生素和补充剂品牌:Higher Nature
        2019/08/26 全球购物
        广州品高软件.net笔面试题目
        2012/04/18 面试题
        linux面试题参考答案(1)
        2016/01/22 面试题
        linux面试题参考答案(3)
        2012/09/13 面试题
        党员承诺书怎么写
        2014/05/20 职场文书
        旷课检讨书500字
        2014/10/14 职场文书
        2015年幼儿园后勤工作总结
        2015/04/25 职场文书
        Windows10下安装MySQL8
        2021/04/06 MySQL
        关于Javascript闭包与应用的详解
        2021/04/22 Javascript
        简单聊一聊SQL注入及防止SQL注入
        2022/03/23 MySQL
        Python必备技巧之函数的使用详解
        2022/04/04 Python
        Linux磁盘管理方法介绍
        2022/06/01 Servers