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 相关文章推荐
        Eclipse中Python开发环境搭建简单教程
        Mar 23 Python
        基于python实现的抓取腾讯视频所有电影的爬虫
        Apr 22 Python
        对numpy中布尔型数组的处理方法详解
        Apr 17 Python
        Python判断是否json是否包含一个key的方法
        Dec 31 Python
        Python二叉树的镜像转换实现方法示例
        Mar 06 Python
        基于sklearn实现Bagging算法(python)
        Jul 11 Python
        使用python创建Excel工作簿及工作表过程图解
        May 27 Python
        python设置中文界面实例方法
        Oct 27 Python
        Django自定义YamlField实现过程解析
        Nov 11 Python
        python实现图像高斯金字塔的示例代码
        Dec 11 Python
        python 爬取天气网卫星图片
        Jun 07 Python
        Python实现滑雪小游戏
        Sep 25 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
        给多个地址发邮件的类
        2006/10/09 PHP
        如何用C语言编写PHP扩展的详解
        2013/06/13 PHP
        php利用imagemagick实现复古老照片效果实例
        2017/02/16 PHP
        thinkphp5实现微信扫码支付
        2019/12/23 PHP
        深入理解PHP+Mysql分布式事务与解决方案
        2020/12/03 PHP
        让你的网站可编辑的实现js代码
        2009/10/19 Javascript
        JS代码放在head和body中的区别分析
        2011/12/01 Javascript
        jquery限制输入字数,并提示剩余字数实现代码
        2012/12/24 Javascript
        YUI Compressor压缩JavaScript原理及微优化
        2013/01/07 Javascript
        移动节点的jquery代码
        2014/01/13 Javascript
        跟我学Node.js(四)---Node.js的模块载入方式与机制
        2014/06/04 Javascript
        jquery可定制的在线UEditor编辑器
        2015/11/17 Javascript
        JavaScript实现DOM对象选择器
        2016/09/24 Javascript
        微信小程序 数据绑定详解及实例
        2016/10/25 Javascript
        AngularJS学习笔记之表单验证功能实例详解
        2017/07/06 Javascript
        迅速了解一下ES10中Object.fromEntries的用法使用
        2019/03/05 Javascript
        压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
        2020/02/03 Javascript
        AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
        2020/03/13 Javascript
        [05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
        2016/08/02 DOTA
        python中偏函数partial用法实例分析
        2015/07/08 Python
        通过Python 接口使用OpenCV的方法
        2018/04/02 Python
        对Pandas DataFrame缺失值的查找与填充示例讲解
        2018/11/06 Python
        Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
        2018/12/26 Python
        用Python解决x的n次方问题
        2019/02/08 Python
        Python定时任务工具之APScheduler使用方式
        2019/07/24 Python
        用python3 urllib破解有道翻译反爬虫机制详解
        2019/08/14 Python
        Django中使用MySQL5.5的教程
        2019/12/18 Python
        pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
        2020/12/16 Python
        Sasa莎莎海外旗舰店:香港莎莎美妆平台
        2018/03/21 全球购物
        诗普兰迪官方网站:Splendid
        2018/09/18 全球购物
        经典公益广告词
        2014/03/13 职场文书
        法人委托书范本
        2014/04/04 职场文书
        家长对学生的评语
        2014/04/18 职场文书
        2016年质量月活动总结报告
        2016/04/05 职场文书
        2019年大学生暑期社会实践调查报告模板
        2019/11/07 职场文书
        vue @ ~ 相对路径 路径别名设置方式
        2022/06/05 Vue.js