在python中,除了文件代码中定义的全局变量和局部变量外,python文件自带一些全局变量,可使用vars()查看。

print(type(vars()),vars())  # <class 'dict'>

  具体python文件的全局变量如下:

  一、__name__  自身文件内使用时,__name__ = __main__;文件被调用时:__name__ = 文件名。

if __name__ == '__main__':
    main()
# 文件被调用时,main()不执行。

  二、__file__  显示文件路径,常与os模块的os.path.join()和os.path.dirname()搭配使用。

# # # 临时添加Path,一次性的
import os
p1 = os.path.dirname(__file__)
p2 = 'newmake_dir'
join_dir = os.path.join(p1,p2)
print(join_dir)
import sys
sys.path.append(join_dir)

import hi
print(hi.__file__)

  三、__builtins__  对python内置函数模块的引用

  python有一个内建模块,其中存放着一些python的内置函数。

  当python启动,但是还未执行代码时,系统会自动将此内建模块加载至内存缓存,当代码中需要内置函数时,可直接使用。

  __builtins__便是对此内建模块的引用,方便用户可见和使用。

print(__builtins__) # <module 'builtins' (built-in)>

  四、 __doc__   文件的注释

  和函数注释一样,每一个python文件也都可以进行注释,使用三引号'''  ''',保存在变量__doc__中。

  但是文件的注释,只能有一个,即文件内第一组三引号''' '''中的内容。其他三引号'''  '''中的内容,只能作为普通的注释。

  五、__package__  显示文件所在包

  在当前文件中,__package__ = None;调用文件时,显示文件所在的包,用 . 分隔。

print(__package__) # None

from newmake_dir import hi
print(hi.__package__) # newmake_dir

  六、__cached__  与系统缓存相关

  当有文件被调用时,系统会自动对被调用文件进行编译,生成字节码文件(.PYC),放入缓存。

  七、__loader__ 和 __spec__ 都与解释器相关,是系统加载时所需要的信息。