直接上代码
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 这是注释__doc__会打印这部分内容 """ # 以字典的方式返回所有内置变量 print(vars()) # 返回当前文件的路径 print(__file__) # 获取导入该文件的路径,当前文件内输出会返回None print(__package__) # 最重要的__name__获取导入文件的路径加文件名称 print(__name__)
执行结果
{'__name__': '__main__', '__doc__': ' 这是注释__doc__会打印这部分内容 ', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001F7A6E6C438>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'F:/SQ_Python_Easy/D10_面向对象/内置变量1.py', '__cached__': None} F:/SQ_Python_Easy/D10_面向对象/内置变量1.py None __main__
知识点一: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在工程目录下的路径