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入门篇之面向对象
        Oct 20 Python
        Python类的继承和多态代码详解
        Dec 27 Python
        Python中函数参数调用方式分析
        Aug 09 Python
        python requests post多层字典的方法
        Dec 27 Python
        PyQt5实现简单数据标注工具
        Mar 18 Python
        Python在Matplotlib图中显示中文字体的操作方法
        Jul 29 Python
        pytorch实现mnist分类的示例讲解
        Jan 10 Python
        利用python实现.dcm格式图像转为.jpg格式
        Jan 13 Python
        python函数定义和调用过程详解
        Feb 09 Python
        将自己的数据集制作成TFRecord格式教程
        Feb 17 Python
        Python爬虫爬取微信朋友圈
        Aug 06 Python
        教你如何使用Python Tkinter库制作记事本
        Jun 10 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
        谈谈PHP语法(4)
        2006/10/09 PHP
        解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
        2013/07/03 PHP
        php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
        2017/04/18 PHP
        jquery 将disabled的元素置为enabled的三种方法
        2009/07/25 Javascript
        jQuery中用dom操作替代正则表达式
        2014/12/29 Javascript
        使用JavaScript的AngularJS库编写hello world的方法
        2015/06/23 Javascript
        JavaScript实现打字效果的方法
        2015/07/10 Javascript
        简单理解js的冒泡排序
        2016/12/19 Javascript
        Node.js通过身份证号验证年龄、出生日期与性别方法示例
        2017/03/09 Javascript
        js 图片转base64的方式(两种)
        2018/04/24 Javascript
        vue实现在线预览pdf文件和下载(pdf.js)
        2019/11/26 Javascript
        vue自定义标签和单页面多路由的实现代码
        2020/05/03 Javascript
        解决vue中el-tab-pane切换的问题
        2020/07/19 Javascript
        微信小程序:报错(in promise) MiniProgramError
        2020/10/30 Javascript
        vue-router定义元信息meta操作
        2020/12/07 Vue.js
        python 正则式 概述及常用字符
        2009/05/07 Python
        使用优化器来提升Python程序的执行效率的教程
        2015/04/02 Python
        Python中的os.path路径模块中的操作方法总结
        2016/07/07 Python
        python简单实现获取当前时间
        2016/08/27 Python
        python 产生token及token验证的方法
        2018/12/26 Python
        Python2 Selenium元素定位的实现(8种)
        2019/02/25 Python
        在python中实现同行输入/接收多个数据的示例
        2019/07/20 Python
        Django 用户认证Auth组件的使用
        2020/11/30 Python
        详解BeautifulSoup获取特定标签下内容的方法
        2020/12/07 Python
        一款纯css3制作的2015年元旦雪人动画特效教程
        2014/12/29 HTML / CSS
        金蝶的一道SQL笔试题
        2012/12/18 面试题
        大学生实习感言
        2014/01/16 职场文书
        2014年上半年工作自我评价
        2014/01/18 职场文书
        幼儿园小班评语
        2014/04/18 职场文书
        初中生期末评语大全
        2014/04/24 职场文书
        2014基层党员批评与自我批评范文
        2014/09/24 职场文书
        2015年小学生暑假总结
        2015/07/13 职场文书
        新郎父母婚礼答谢词
        2015/09/29 职场文书
        Feign调用传输文件异常的解决
        2021/06/24 Java/Android
        mybatis中sql语句CDATA标签的用法说明
        2021/06/30 Java/Android
        SQL Server2019安装的详细步骤实战记录(亲测可用)
        2022/06/10 SQL Server