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 04 Python
        python实现随机梯度下降(SGD)
        Mar 24 Python
        详解如何为eclipse安装合适版本的python插件pydev
        Nov 04 Python
        Python实现的删除重复文件或图片功能示例【去重】
        Apr 23 Python
        Django数据库类库MySQLdb使用详解
        Apr 28 Python
        numpy.linspace函数具体使用详解
        May 27 Python
        django表单的Widgets使用详解
        Jul 22 Python
        PyQt5+Caffe+Opencv搭建人脸识别登录界面
        Aug 28 Python
        python实现文件的分割与合并
        Aug 29 Python
        python绘制无向图度分布曲线示例
        Nov 22 Python
        Python操控mysql批量插入数据的实现方法
        Oct 27 Python
        python疲劳驾驶困倦低头检测功能的实现
        Apr 04 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
        关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
        2013/06/24 PHP
        解析strtr函数的效率问题
        2013/06/26 PHP
        php通过前序遍历树实现无需递归的无限极分类
        2015/07/10 PHP
        php 变量引用与变量销毁机制详细介绍
        2016/12/05 PHP
        javascript脚本编程解决考试分数统计问题
        2008/10/18 Javascript
        jQuery图片播放8款精美插件分享
        2013/02/17 Javascript
        JS实现图片无间断滚动代码汇总
        2014/07/30 Javascript
        每天一篇javascript学习小结(Array数组)
        2015/11/11 Javascript
        基于javascript实现动态显示当前系统时间
        2016/01/28 Javascript
        Javascript实现苹果悬浮虚拟按钮
        2016/04/10 Javascript
        BootStrap Typeahead自动补全插件实例代码
        2016/08/10 Javascript
        Angular在一个页面中使用两个ng-app的方法(二)
        2017/02/20 Javascript
        jQuery日期范围选择器附源码下载
        2017/05/23 jQuery
        Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
        2017/06/04 Javascript
        angular.js + require.js构建模块化单页面应用的方法步骤
        2017/07/19 Javascript
        VUE 使用中踩过的坑
        2018/02/08 Javascript
        JS 实现获取验证码 倒计时功能
        2018/10/29 Javascript
        vue中上传视频或图片或图片和文字一起到后端的解决方法
        2019/12/01 Javascript
        [28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
        2020/10/31 DOTA
        python字符串排序方法
        2014/08/29 Python
        python 实现tar文件压缩解压的实例详解
        2017/08/20 Python
        python 遍历pd.Series的index和value
        2019/11/26 Python
        了解一下python内建模块collections
        2020/09/07 Python
        python request 模块详细介绍
        2020/11/10 Python
        Python调用Redis的示例代码
        2020/11/24 Python
        CSS3弹性盒模型开发笔记(一)
        2016/04/26 HTML / CSS
        日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
        2020/02/03 全球购物
        在c#中using和new这两个关键字有什么意义
        2013/05/19 面试题
        Linux如何为某个操作添加别名
        2015/02/05 面试题
        GWebs公司笔试题
        2012/05/04 面试题
        如何从一个文件档案的尾端新增记录
        2016/12/02 面试题
        《草虫的村落》教学反思
        2014/02/16 职场文书
        小学生校园广播稿
        2014/09/28 职场文书
        关于运动会广播稿300字
        2014/10/05 职场文书
        高考升学宴答谢词
        2015/01/20 职场文书
        2016年师德先进个人事迹材料
        2016/02/29 职场文书