• Python基础-----模块和包介绍


    一、模块
    1 import 语句
    import module1[, module2[,... moduleN]
    当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?答案就是解释器有自己的搜索路径,存在sys.path里。  
    ['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu',
    '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']  
    因此若像我一样在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。
    import 会寻找【执行文件】的目录下是否有对应模块,sys.path会将执行文件的目录添加到检索路径中

    2 from…import 语句
    from modname import name1[, name2[, ... nameN]]
    这个声明不会把整个modulename模块导入到当前的命名空间中,
    只会将它里面的name1或name2单个引入到执行这个声明的模块的全局符号表。

    3 from…import* 语句
    from modname import *
    这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。大多数情况,Python程序员不使用这种方法,
    因为引入的其它来源的命名,很可能覆盖了已有的定义。

    4 运行本质 
    #1 import test
    #2 from test import add  
    无论1还是2,首先通过sys.path找到test.py,然后执行test脚本(全部执行),区别是1会将test这个变量名加载到名字空间,
    而2只会将add这个变量名加载进来。 

    二、包
    包 是用来组织模块,避免模块同名冲突
    包的调用同模块的调用一样,也是用import,所有好几层的包,可以上下级(包与包之间用 . 连接)
    如: from web.web1.web2 import cal (有三层包分别是web web1 web 2)
    请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),
    而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。
    调用包就是执行包下的__init__.py文件

    三、关于__name__和__main__
    执行文件下:___name__ = '__main__'
    调用文件(模块): ___name__ = 'web.web1.web2'(调用文件、模块的路径)

    if __name__ == '__main__': #所放置在被调用文件下:用于被调用文件的测试
    #放置在主文件(执行文件)下:则不希望被其他文件调用
    代码块
    如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件
    通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。

    这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部模块
    调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!

  • 相关阅读:
    paip.禁用IKAnalyzer 的默认词库.仅仅使用自定义词库.
    paip.语义分析分词常见的单音节字词 2_deDuli 单字词 774个
    IFL嵌入式小组技术博客入口导航
    devc++5.0.0.9的调试方法
    getch()、getche()和getchar()之间的区别
    devc++5.0.0.9的调试方法
    声明和定义的区别
    IFL嵌入式小组技术博客入口导航
    C/C++程序到内存分配个人总结
    getch()、getche()和getchar()之间的区别
  • 原文地址:https://www.cnblogs.com/Meanwey/p/9741302.html
Copyright © 2020-2023  润新知