获取当前模块的变量

#!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__

内置函数都在这里面

版权声明:本文为poloyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/poloyy/p/12507104.html