• 模块与包


    模块的使用
    导入模块等于是创建了一个命名空间,空间中存取了,模块中定义的啊名字。之后再执行模块文件。
    模块中的变量名和本文件中变量名互不干扰,所有的执行操作都是以模块自身为准

    如何查看当前已经导入的所有模块?

    import sys
    sys.modeles#可以查看当前导入的模块

    如何导入模块中的所有变量名

    from modeles import*

    当你想限制*导入的内容的时候,可以在模块中添加以下语句

    __all__=[]#中括号中写的字符串形式的变量就是指定*可以导入命名

    关于模块搜素的顺序:

    模块搜索的时候总是现在内存中寻找,所以重复导入的时候如果在内存中已经有的话,那就直接导入,如果内存中不存在就找内建模块,内建如果没有就找当前路径
    sys.path可以查看详细寻找路径(返回一个列表形式的path)

    假设你要添加一个自定义模块的路径搜索可以 sys.path.append('路径') 实现

    关于__name__

    当文件本身运行自己的时候__name__=__main__
    单文件被当作模块调用的时候__name__=文件名
    一般当你的代码是个测试代码,不想被别人调用的时候可以加上判断语句

    if __name__=__main__:

    #要执行的代码

    编译python文件

    当模块导入的时候会在模块文件内部产生一个pyc文件,这个文件是python的预编译文件,当下次读取的时候就会加速,这样就可以提高模块导入的时候的执行效率(只有导入模块的时候才会生成这个文件)

    关于包的概念:

    包其实就是一个拥有层次结构的模块,每次载入包的时候都会读取__init__.py文件内容,在这个文件内容中可以设置好一些调用的功能的路径,这样在导入总模块的时候,就可以直接调用某些功能

  • 相关阅读:
    JavaWeb
    Network
    JavaWeb
    Maven
    IDEA
    Maven
    Network
    JavaWeb
    JavaWeb
    JavaWeb
  • 原文地址:https://www.cnblogs.com/crischou/p/6796608.html
Copyright © 2020-2023  润新知