python笔记19-获取当前运行函数名称和类方法名称
前言
写完代码之后,一般为了方便查看日志,可以在日志输出中加入当前运行的函数名称或类和方法名称,以便于代码报错的时候能快速找到报错的是哪个函数或方法。
那么如何获取当前运行函数(或方法)的名称呢?
获取函数名称
1.在函数外部获取函数名称,用.__name__获取

2.函数内部获取当前函数名称,用sys._getframe().f_code.co_name方法获取

类和方法名称获取
1.获取类名称self.class.name

2.获取类里面方法名称,跟获取函数名称一样sys._getframe().f_code.co_name)

inspect模块
1.使用inspect模块动态获取当前运行的函数名(或方法名称)
# coding:utf-8
import inspect
def get__function_name():
'''获取正在运行函数(或方法)名称'''
return inspect.stack()[1][3]
def yoyo():
print("函数名称:%s"%get__function_name())
class Yoyo():
def yoyoketang(self):
'''# 上海-悠悠 QQ群:588402570'''
print("获取当前类名称.方法名:%s.%s" % (self.__class__.__name__, get__function_name()))
if __name__ == "__main__":
yoyo()
Yoyo().yoyoketang()
运行结果:
函数名称:yoyo
获取当前类名称.方法名:Yoyo.yoyoketang
python自动化交流 QQ群:779429633
python笔记19-获取当前运行函数名称和类方法名称的更多相关文章
- 【Python】—— 获取当前运行函数名称和类方法名称
原文出处: python笔记19-获取当前运行函数名称和类方法名称 获取函数名称 1.在函数外部获取函数名称,用.__name__获取 2.函数内部获取当前函数名称,用sys._getframe(). ...
- python笔记-19 javascript补充、web框架、django基础
一.JavaScript的补充 1 正则表达式 1.1 test的使用 test 测试是否符合条件 返回true or false 1.2 exec的使用 exec 从字符串中截取匹配的字符 1.3 ...
- python笔记-5(内置函数)
一.内置函数 1.abs()--取绝对值函数 print(abs(-0.11)) x=-0.01 y=0.11 print(abs(x),abs(y)) ----------------------- ...
- Python笔记【6】_函数
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 ''' def:函数是一段可以重复调用的代码,通 ...
- python笔记19
今日内容 面向对象基本用法 好处和应用场景 面向对象的三大特性 内容详细 1.面向对象基本格式 # ###### 定义类 ###### class 类名: def 方法名(self,name): pr ...
- python笔记之列表与元组函数和方法使用举例
在学习列表之前先了解了raw_input和input的区别:(仅适用于版本2,版本3中raw_input和input合并,没有raw_input) input的语法为:input("str& ...
- python笔记(一)获取当前目录路径和文件
一.获取当前路径 1.使用sys.argv[0] import sys print sys.argv[0]#输出#本地路径 2.os模块 import os print os.getcwd() #获取 ...
- Python笔记(五)_内置函数BIF
查看所有的内置函数:dir(__builtins__) abs() 获取绝对值 max() 返回给定元素中的最大值 min() 返回给定元素中的最小值 sum() 求和 reverse ...
- python笔记十三(高阶函数、装饰器)
一.高阶函数 函数只要有以下两个特征中一个就可以称为高阶函数: a:函数名作为一个实参传入另一个函数中 b:函数的返回值中包含函数名 下面我们用代码来感受一下这两种形式: import time # ...
随机推荐
- explode() 字符串转换数组
explode() 函数把字符串分割为数组. 语法 explode(separator,string,limit) 例子: $str = "Hello world. It's a beaut ...
- elementUI 学习入门之 layout 布局
layout 布局 通过基础的 24 分栏,可进行快速布局 基础布局 使用单一分栏创建基础的栅格布局, 通过 span 属性指定每栏的大小 <el-col :span="8" ...
- php源码审计
转:http://www.jb51.net/article/31898.htm 针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(Eva ...
- Android 之JSON数据解析
(以下基本都是郭霖大神<第一行代码>中的知识) JSON数据与xml相比,优势在于体积更小,传输所需的流量少.但是缺点也很明显,就是语义性较差. 下面是一组JSON格式的数据. [{&qu ...
- Google的代码高亮-code-prettify
前不久发现,在wordpress中贴代码的时候,发现code标签并没有意料中的好使用,在贴代码的时候没有高亮真的是一件无法忍受的事情. 正巧,两周前听过同事Eason的一个关于Markdown的分享, ...
- 在学习HTML——form表单中的label标签时的一点小体会
在我啃了一遍书本之后,开始了在慕课看视频的过程,从最开始的HTML+CSS的基础课程看起,在第5-9小节讲到了form表单的label标签, 首先看一下慕课的讲解: label 标签不会向用户呈现任 ...
- Redis学习篇(二)之Hash类型及其操作
HSET 作用: 将哈希表key中的域field设置成指定的value 语法:HSET key field value HSET userinfo name 'zhangsan' HSET useri ...
- 01-学前入门概念:.net与c#
.Net是由(.Net 平台和.Net FrameWork框架)这两部分组成. .Net FrameWork是由(CLR公共语言运行时和.Net 类库组成). .Net FrameWork框架是.Ne ...
- java 继承 String类
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha String 类 是 final修饰 , 是不能 继承的.
- 欧拉回路 uoj117
写了一道欧拉回路的模板题.先判断是否是欧拉回路,有向图和无向图有一点点不同,然后就是特判独立点的存在. 之后是输出路径,和dls学的dfs,利用last数组的更新可以做到线性的复杂度,否则一不小心就会 ...