获取当前模块的变量
#!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/7/21 11:29 下午 # file: 5_list 列表.py """ import keyword from pprint import pprint print(keyword.kwlist) print(type) type = 2 print(type) # 内置变量 pprint(vars())
输出结果
{'__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__cached__': None, '__doc__': '\n' '# author: 小菠萝测试笔记\n' '# blog: https://www.cnblogs.com/poloyy/\n' '# time: 2021/7/21 11:29 下午\n' '# file: 5_list 列表.py\n', '__file__': '/Users/polo/Documents/pylearn/第一章:python 基本类型/4_变量.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x1085aafd0>, '__name__': '__main__', '__package__': None, '__spec__': None, 'keyword': <module 'keyword' from '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/keyword.py'>, 'pprint': <function pprint at 0x108663430>, 'type': 2}
前面 9 个有 __var__ 包着的变量都是内置变量,后面三个是模块中自己声明的变量
vars()
Python内置函数,可以返回当前模块的所有内置变量
__file__
所在模块:os
变量作用:获取当前文件的绝对路径,一般配合下面的函数来使用
当前文件的完整路径: os.path.realpath(__file__)
当前文件所属目录: os.path.dirname(os.path.realpath(__file__))
当前文件所属目录的上级目录: os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
__package__
""" 内置变量1.py """ #!/usr/bin/env python # -*- coding: utf-8 -*- print(__package__) # 输出None
""" 内置变量2.py """ #!/usr/bin/env python # -*- coding: utf-8 -*- from test import 内置变量1.py # 会输出 test ;输出导入的文件的目录
__name__(重点)
Python系统变量
场景一: if__name__ == '__main__':
最常用的场景:当你运行当前文件时, __name__ 输出就是 __main__ ,所以可以加个 if 判断来执行特定代码
场景二:其他文件import
内置变量1.py 文件
#!/usr/bin/env python # -*- coding: utf-8 -*- print(__name__) if __name__ == '__main__': print("main")
运行 内置变量1.py 文件
__main__ main
内置变量2.py 文件
#!/usr/bin/env python # -*- coding: utf-8 -*- from test import 内置变量1.py
运行 内置变量2.py 文件
D10_面向对象.内置变量1
可以看到,运行内置变量2.py文件时,它因为导入了内置变量1.py,输出__name__的值则是内置变量1.py在工程目录下的路径
__cached__
获取导入文件的缓存路径
__builtins__
内置函数都在这里面