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实现的自定义多线程多进程类示例
        Mar 23 Python
        浅谈python配置与使用OpenCV踩的一些坑
        Apr 02 Python
        Python matplotlib学习笔记之坐标轴范围
        Jun 28 Python
        python sklearn库实现简单逻辑回归的实例代码
        Jul 01 Python
        关于Python 的简单栅格图像边界提取方法
        Jul 05 Python
        使用selenium和pyquery爬取京东商品列表过程解析
        Aug 15 Python
        Python多继承以及MRO顺序的使用
        Nov 11 Python
        python shutil文件操作工具使用实例分析
        Dec 25 Python
        Python安装与卸载流程详细步骤(图解)
        Feb 20 Python
        python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
        Feb 26 Python
        用opencv给图片换背景色的示例代码
        Jul 08 Python
        Django项目配置Memcached和Redis, 缓存选择哪个更有优势
        Apr 06 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
        VOLVO车载收音机
        2021/03/02 无线电
        ThinkPHP中实例Model方法的区别说明
        2010/08/21 PHP
        php中var_export与var_dump的区别分析
        2010/08/21 PHP
        set_exception_handler函数在ThinkPHP中的用法
        2014/10/31 PHP
        PHP上传文件参考配置大文件上传
        2015/12/16 PHP
        php代码检查代理ip的有效性
        2016/08/19 PHP
        PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
        2020/05/29 PHP
        基于jQuery的图片剪切插件
        2011/08/03 Javascript
        简单的前端js+ajax 购物车框架(入门篇)
        2011/10/29 Javascript
        js改变embed标签src值的方法
        2015/04/10 Javascript
        如何消除inline-block属性带来的标签间间隙
        2016/03/31 Javascript
        jQuery对象的链式操作用法分析
        2016/05/10 Javascript
        jquery实现ajax加载超时提示的方法
        2016/07/23 Javascript
        Vue.js组件tree实现无限级树形菜单
        2016/12/02 Javascript
        JS验证不重复验证码
        2017/02/10 Javascript
        jQuery中绑定事件bind() on() live() one()的异同
        2017/02/23 Javascript
        jQuery手风琴的简单制作
        2017/05/12 jQuery
        AngularJS 实现点击按钮获取验证码功能实例代码
        2017/07/13 Javascript
        jquery.uploadView 实现图片预览上传功能
        2017/08/10 jQuery
        jQuery实现简易聊天框
        2020/02/08 jQuery
        vue中的使用token的方法示例
        2020/03/10 Javascript
        python解析xml文件实例分析
        2015/05/27 Python
        Python读写unicode文件的方法
        2015/07/10 Python
        python Pandas如何对数据集随机抽样
        2019/07/29 Python
        你可能不知道的Python 技巧小结
        2020/01/29 Python
        纯CSS3实现3D旋转书本效果
        2016/03/21 HTML / CSS
        CheapTickets泰国:廉价航班,查看促销价格并预订机票
        2019/12/28 全球购物
        限量版运动鞋和街头服饰:TheDrop
        2020/09/06 全球购物
        光盘行动倡议书
        2014/02/02 职场文书
        策划创业计划书
        2014/02/06 职场文书
        出租房屋协议书
        2014/09/14 职场文书
        2014年学校安全工作总结
        2014/11/13 职场文书
        2015年创先争优活动总结
        2015/03/27 职场文书
        2016年教代会开幕词
        2016/03/04 职场文书
        Golang全局变量加锁的问题解决
        2021/05/08 Golang
        Win11更新失败并提示0xc1900101
        2022/04/19 数码科技