首页 > 代码库 > 模块中的特殊变量

模块中的特殊变量

模块中特殊的变量

当我们导入模块的时候,模块已经为我们创建一些内置变量,当我们导入模块后直接调用。
例如:
print(vars(modulename)   打印出模块内置的变量

这里有几个特殊的变量。

1  __doc__    获取模块注释

    a.py
    #!/usr/bin/env  python
    # -*- coding:utf-8 -*-
    """
    注释           注意:三引号代表的是注释,注释一般都会写代码实现的功能。
    """
    def func():
        print(函数)

    调用模块a.py后,获取注释,相当于查看这个模块的功能。
    import a.py
    print(__doc__)
    输出:
    注释

2 __cached__ :模块缓存,指定pyc字节码路径

3 __file__:当前模块的路径
 
  os.path.abspath(__file__):当前模块的绝对路径
  os.path.dirname(os.path.abspath(__file__)):当前模块的上一级目录
  例如:
    import py2
    print(py2.__doc__)   #获取py2的注释
    print(__file__)     #获取py2的路径,当前路径

    import os
    import sys
    os.path.abspath(__file__)
    print(os.path.abspath(__file__))    #取当前模块的绝对路径
    #os.path.dirname() #上一级目录
    #把当前模块,以及上一级目录,上上一级目录添加到系统路径中。这样当我们执行这个模块的时候,始终能找到。
    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

4 __package__:可以获取导入模块所属的包
    例如:
    from pk1 import py2
    print(py2.__package__)    #打印py2所属的目录pk1

5    __name__ == "__main__":当我们手动执行函数的时候,才会满足这个条件。

    def run():
        print(123)
    if __name__ == "__main__":   #当我们执行这个脚本的时候才满足这个条件,即__name__ == “__main__”
        run()                  #所以只有当我们执行这个文件的时候,才会执行run().
                              # 如果我们在别的模块中导入此模块的话则不会执行run(),一般在主函数中写入,防止被导入。

模块中的特殊变量