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原始套接字编程示例分享
        Feb 21 Python
        采用python实现简单QQ单用户机器人的方法
        Jul 03 Python
        详解Python的Django框架中的Cookie相关处理
        Jul 22 Python
        Python编程实现微信企业号文本消息推送功能示例
        Aug 21 Python
        python 递归遍历文件夹,并打印满足条件的文件路径实例
        Aug 30 Python
        对Python3中的input函数详解
        Apr 22 Python
        python实现超简单的视频对象提取功能
        Jun 04 Python
        python脚本开机自启的实现方法
        Jun 28 Python
        Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
        Jan 03 Python
        python正则过滤字母、中文、数字及特殊字符方法详解
        Feb 11 Python
        Python爬虫requests库多种用法实例
        May 28 Python
        10行Python代码实现Web自动化管控的示例代码
        Aug 14 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
        用PHP调用Oracle存储过程的方法
        2008/09/12 PHP
        php学习之流程控制实现代码
        2011/06/09 PHP
        PHP获取当前url的具体方法全面解析
        2013/11/26 PHP
        php中限制ip段访问、禁止ip提交表单的代码分享
        2014/08/22 PHP
        php使用GD库创建图片缩略图的方法
        2015/06/10 PHP
        php利用递归实现删除文件目录的方法
        2016/09/23 PHP
        PHP有序表查找之插值查找算法示例
        2018/02/10 PHP
        addRule在firefox下的兼容写法
        2006/11/30 Javascript
        JS面向对象、prototype、call()、apply()
        2009/05/14 Javascript
        深入理解JavaScript系列(30):设计模式之外观模式详解
        2015/03/03 Javascript
        jQuery使用append在html元素后同时添加多项内容的方法
        2015/03/26 Javascript
        javascript控制图片播放的实现代码
        2020/07/29 Javascript
        JQuery标签页效果实例详解
        2015/12/24 Javascript
        jquery radio的取值_radio的选中_radio的重置方法
        2016/09/20 Javascript
        AngularJS入门教程一:路由用法初探
        2017/05/27 Javascript
        解决webpack打包速度慢的解决办法汇总
        2017/07/06 Javascript
        微信小程序模板消息限制实现无限制主动推送的示例代码
        2019/08/27 Javascript
        原生js+ajax分页组件
        2020/01/30 Javascript
        jQuery是用来干什么的 jquery其实就是一个js框架
        2021/02/04 jQuery
        python+Splinter实现12306抢票功能
        2018/09/25 Python
        Python中if有多个条件处理方法
        2020/02/26 Python
        给keras层命名,并提取中间层输出值,保存到文档的实例
        2020/05/23 Python
        Python常见反爬虫机制解决方案
        2020/06/01 Python
        pandas分批读取大数据集教程
        2020/06/06 Python
        使用Keras预训练好的模型进行目标类别预测详解
        2020/06/27 Python
        解决Python中导入自己写的类,被划红线,但不影响执行的问题
        2020/07/13 Python
        关于python3.7安装matplotlib始终无法成功的问题的解决
        2020/07/28 Python
        详解Python模块化编程与装饰器
        2021/01/16 Python
        3D动画《斗罗大陆》上线当日播放过亿
        2021/03/16 国漫
        如何写一个Java类既可以用作applet也可以用作java应用
        2016/01/18 面试题
        元旦活动感言
        2014/03/08 职场文书
        2016春节慰问信范文
        2015/03/25 职场文书
        2015年药房工作总结
        2015/04/25 职场文书
        银行岗位培训心得体会
        2016/01/09 职场文书
        CentOS下安装Jenkins的完整步骤
        2022/04/07 Servers