在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__ 都与解释器相关,是系统加载时所需要的信息。
浙公网安备 33010602011771号