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面向对象程序设计之继承与多继承用法分析
        Jul 13 Python
        使用TensorFlow实现SVM
        Sep 06 Python
        python实现顺序表的简单代码
        Sep 28 Python
        浅谈Python中eval的强大与危害
        Mar 13 Python
        python面试题之列表声明实例分析
        Jul 08 Python
        Django实现文件上传下载
        Oct 06 Python
        基于Python中random.sample()的替代方案
        May 23 Python
        python如何写try语句
        Jul 14 Python
        15个应该掌握的Jupyter Notebook使用技巧(小结)
        Sep 23 Python
        用python对excel查重
        Dec 07 Python
        python中if嵌套命令实例讲解
        Feb 25 Python
        Python可变与不可变数据和深拷贝与浅拷贝
        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
        咖啡的化学
        2021/03/03 咖啡文化
        php5.3以后的版本连接sqlserver2000的方法
        2014/07/28 PHP
        在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
        2010/03/02 Javascript
        基于jquery的返回顶部效果(兼容IE6)
        2011/01/17 Javascript
        有关javascript的性能优化 (repaint和reflow)
        2013/04/12 Javascript
        jQuery学习笔记之基础中的基础
        2015/01/19 Javascript
        jQuery动画出现连续触发、滞后反复执行的解决方法
        2015/01/28 Javascript
        基于jquery实现鼠标滚轮驱动的图片切换效果
        2015/10/26 Javascript
        微信小程序 本地存储及登录页面处理实例详解
        2017/01/11 Javascript
        JS中setTimeout和setInterval的最大延时值详解
        2017/02/13 Javascript
        关于foreach循环中遇到的问题小结
        2017/05/08 Javascript
        Node.js中流(stream)的使用方法示例
        2017/07/16 Javascript
        Vue+webpack项目基础配置教程
        2018/02/12 Javascript
        Vue中CSS动画原理的实现
        2019/02/13 Javascript
        解决Layui中templet中a的onclick参数传递的问题
        2019/09/20 Javascript
        [51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
        2018/06/04 DOTA
        python中执行shell命令的几个方法小结
        2014/09/18 Python
        DJANGO-ALLAUTH社交用户系统的安装配置
        2014/11/18 Python
        Python简单实现Base64编码和解码的方法
        2017/04/29 Python
        用Python进行简单图像识别(验证码)
        2018/01/19 Python
        python pandas库中DataFrame对行和列的操作实例讲解
        2018/06/09 Python
        python之array赋值技巧分享
        2019/11/28 Python
        python 实现视频 图像帧提取
        2019/12/10 Python
        python3实现往mysql中插入datetime类型的数据
        2020/03/02 Python
        Python3压缩和解压缩实现代码
        2021/03/01 Python
        如何用H5实现一个触屏版的轮播器的实例
        2017/01/09 HTML / CSS
        德国EGOIST网店:销售畅销的设计师品牌
        2017/04/18 全球购物
        serialVersionUID具有什么样的特征
        2014/02/20 面试题
        2015年超市收银员工作总结
        2015/04/25 职场文书
        全民创业工作总结
        2015/08/13 职场文书
        《生物入侵者》教学反思
        2016/02/16 职场文书
        python 下载文件的几种方式分享
        2021/04/07 Python
        Java数据结构之链表相关知识总结
        2021/06/18 Java/Android
        如何使用pdb进行Python调试
        2021/06/30 Python
        CSS实现切角+边框+投影+内容背景色渐变效果
        2021/11/01 HTML / CSS
        Mysql分库分表之后主键处理的几种方法
        2022/02/15 MySQL