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命令行交互提示符的方法
        Jan 14 Python
        Python随机生成一个6位的验证码代码分享
        Mar 24 Python
        Python脚本实现格式化css文件
        Apr 08 Python
        python用Pygal如何生成漂亮的SVG图像详解
        Feb 10 Python
        python读取csv文件并把文件放入一个list中的实例讲解
        Apr 27 Python
        python更改已存在excel文件的方法
        May 03 Python
        Python中@property的理解和使用示例
        Jun 11 Python
        opencv调整图像亮度对比度的示例代码
        Sep 27 Python
        python爬虫爬取幽默笑话网站
        Oct 24 Python
        python 使用shutil复制图片的例子
        Dec 13 Python
        IronPython连接MySQL的方法步骤
        Dec 27 Python
        如何在pycharm中快捷安装pip命令(如pygame)
        May 31 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中的trait
        2017/02/25 PHP
        laravel框架模型、视图与控制器简单操作示例
        2019/10/10 PHP
        js prototype 格式化数字 By shawl.qiu
        2007/04/02 Javascript
        jquery 子窗口操作父窗口的代码
        2009/09/21 Javascript
        JavaScript中的noscript元素属性位置及作用介绍
        2013/04/11 Javascript
        jQuery学习笔记之jQuery动画效果
        2013/09/09 Javascript
        jQuery的3种请求方式$.post,$.get,$.getJSON
        2014/03/28 Javascript
        浅谈Nodejs观察者模式
        2015/10/13 NodeJs
        概述一个页面从输入URL到页面加载完的过程
        2016/12/16 Javascript
        详解axios在node.js中的post使用
        2017/04/27 Javascript
        JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
        2017/09/23 jQuery
        React Native使用Modal自定义分享界面的示例代码
        2017/10/31 Javascript
        javascript+jQuery实现360开机时间显示效果
        2017/11/03 jQuery
        ReactNative中使用Redux架构总结
        2017/12/15 Javascript
        Vue实现带进度条的文件拖动上传功能
        2018/02/23 Javascript
        Vue组件跨层级获取组件操作
        2020/07/27 Javascript
        用Python和MD5实现网站挂马检测程序
        2014/03/13 Python
        浅谈Django学习migrate和makemigrations的差别
        2018/01/18 Python
        5个很好的Python面试题问题答案及分析
        2018/01/19 Python
        Python基于opencv的图像压缩算法实例分析
        2018/05/03 Python
        python实现C4.5决策树算法
        2018/08/29 Python
        Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
        2019/12/20 Python
        利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
        2017/06/15 HTML / CSS
        美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
        2016/10/19 全球购物
        GEOX鞋美国官方网站:意大利会呼吸的鞋
        2017/07/12 全球购物
        GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
        2018/04/16 全球购物
        Lookfantastic香港官网:英国知名美妆购物网站
        2018/06/19 全球购物
        Carrs Silver官网:英国著名的银器品牌
        2020/08/29 全球购物
        大学生应聘自荐信
        2013/10/11 职场文书
        电子技术专业中专生的自我评价
        2013/12/17 职场文书
        个人近期表现材料
        2014/02/11 职场文书
        2014年个人债务授权委托书范本
        2014/09/22 职场文书
        研究生导师评语
        2014/12/31 职场文书
        logback 实现给变量指定默认值
        2021/08/30 Java/Android
        科学家测试在太空中培育人造肉,用于未来太空旅行
        2022/04/29 数码科技
        python神经网络 使用Keras构建RNN训练
        2022/05/04 Python