1.目的:查看调用函数的信息
---
2.方法介绍
2.1:inspect.stack()是什么?
使用inspect.stack()可以获得一个数组,其中的每个元素分别是[0]本层、[1]上层、[2]上上层…的函数的信息,在日志中打印这些信息可以方便定位报错位置
每个元素中可以获取的常用属性如下(*除了这些还有其他属性,可自行输出查看):
属性 | 说明 |
filename | 文件名/路径 |
function | 函数 |
lineno | 行号/代码所属行号 |
2.2:举例说明
前提:
被调用者信息
1. 被调用者类为A1
2. 被调用者方法为A2
3. 被调用者所属路径为A3
调用者信息
1. 调用者类为B1
2. 调用者方法为B2
3. 调用者所属路径为B3
场景:调用者调用A2方法,如果在被调用者代码中加上
print(inspect.stack()[0]) 表示获取本层信息,也就是被调用者的信息
print(inspect.stack()[0].filename) 表示获取本层的文件名,也就是被调用者的路径
print(inspect.stack()[0].function) 表示获取本层的函数名,也就是被调用者的方法
print(inspect.stack()[1]) 表示获取上层信息,也就是调用者的信息
print(inspect.stack()[1].filename) 表示获取上层的文件名,也就是调用者的路径
print(inspect.stack()[1].function) 表示获取上层的函数名,也就是调用者的方法
# 被调用者的信息
import inspect
class BaseApi:
def request_send(self, **kwargs):
for i in inspect.stack():
print(i)
print(inspect.stack()[0].function)
print(inspect.stack()[0].filename)
print(inspect.stack()[0].lineno)
# 调用者信息
from common.base_api import BaseApi
from config.config import HOST, tradingOrder_headers
class Sop:
def query_sop_wait_recover_list(self):
BaseApi().request_send()
if __name__ == '__main__':
Sop().query_sop_wait_recover_list()
获取被调用者信息
获取调用者信息