动态获取当前运行的类名、函数名

1.只取函数名

1 import sys
2 def getFunctionName():
3     return sys._getframe(1).f_code.co_name
4
5 def run():
6     print ‘functionname:‘, getFunctionName()
7
8 if __name__ == "__main__":
9     run()

2.取类名、函数名

 1 import inspect
 2 def get_current_function_name():
 3     return inspect.stack()[1][3]
 4
 5 class MyClass:
 6     def function_one(self):
 7         print "%s.%s invoked"%(self.__class__.__name__, get_current_function_name())
 8
 9 if __name__ == "__main__":
10     myclass = MyClass()
11     myclass.function_one()

 1 import sys
 2 def getFunctionName():
 3     return sys._getframe(1).f_code.co_name
 4
 5 class MyClass:
 6     def function_one(self):
 7         print  "%s.%s invoked" % (self.__class__.__name__,getFunctionName())
 8
 9 if __name__ == "__main__":
10     myclass = MyClass()
11     myclass.function_one()
时间: 2024-07-29 07:33:07

动态获取当前运行的类名、函数名的相关文章

python 动态获取当前运行的类名和函数名的方法

一.使用内置方法和修饰器方法获取类名.函数名 python中获取函数名的情况分为内部.外部,从外部的情况好获取,使用指向函数的对象,然后用__name__属性 复制代码代码如下: def a():passa.__name__ 除此之外还可以: 复制代码代码如下: getattr(a,'__name__') 尽管有些脱裤子放屁,总之,从外部获取的方法是非常灵活的. 有些同学需要从函数内部获取函数本身的名字,就需要用些技巧了.1.使用sys模块的方法: 复制代码代码如下: def a():print

类名+函数名(参数1,参数2.....){.......return this;}

下述的函数是这样定义的: 类名+函数名(参数1,参数2.....){.......return this;} int +函数名(参数1,参数2.....){.......return int;} short+函数名(参数1,参数2.....){.......return short;} double+函数名(参数1,参数2.....){.......return double;} String+函数名(参数1,参数2.....){.......return String;} int[]+函数名(

Java运行时获取当前运行代码类名、方法名

/*    * 1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 *  * 2. 获取调用者.当前方法名 *   [1]获得调用者的方法名, 同new Throwable *         String _methodName = new Exception().getStackTrace()[1].getMethodName(); *   [0]获得当前的方法名, 同new Throwable *         String _t

突然的明白--public static 类名 函数名()

public static ImageUtilEngine getImageEngine() { return imageEngine; } 这个是什么啊........纠结了一个多星期的东西 忽然间看到了 /** A safe way to get an instance of the Camera object. */ public static Camera getCameraInstance(){ Camera c = null; try { c = Camera.open(); //

获取当前运行的类名或者方法

public static String getCurrentMethodName() { int level = 1; StackTraceElement[] stacks = new Throwable().getStackTrace(); String methodName = stacks[level].getMethodName(); return methodName; } public static String getCurrentClassName() { int level

JAVA 获取类名,函数名

获取以下获取方法所在函数的相关信息 1.获取当前函数名:Thread.currentThread().getStackTrace()[1].getMethodName(); 2.获取当前类名:Thread.currentThread().getStackTrace()[1].getClassName(); 3.获取当前类的文件名:Thread.currentThread().getStackTrace()[1].getFileName(); 获取调用方法的所在函数的相关信息 1.获取当前函数名:

在C语言中以编程的方式获取函数名

调试常用的 __FILE__, __FUNCTION__, __LINE__ 调试常用的 __FILE__, __FUNCTION__, __LINE__ 没想到 VC6 不支持 __FUNCTION__ 所以我写了如下的奇怪代码 //用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const char * function); //当然还要对 __FUNCTION__ 宏作点修饰,因为这个宏只是在函数里面才起作

使用Mono Cecil 动态获取运行时数据 (Atribute形式 进行注入) -摘自网络

目录 一:普通写法 二:注入定义 三:Weave函数 四:参数构造 五:业务编写 六:注入调用 一:普通写法 1 2 3 4 public static string GetPoint(int x, int y)  {     var value=x; } 哇 好简单啊.其实动态获取和我们普通这样写代码是一样的,我们把要注入的代码,生成一个接收的变量就可以了. 就像上面value 一样接收,然后传递给我们自己函数就可以了. 二 :注入定义 public class WeaveService :

python动态修改函数名

困惑 在之前用sgmllib解析网页的时候遇到了·def do_a(self,attr)·这类的函数,可以自动识别<a>并解析其中内容. 在看learningpythonthehardway时也遇到了render.index()之类的随着url路由而变化的函数名. 遂思考,怎么才能实现这种动态的函数名呢? 研究 在使用Java.C.C#等其他语言时,并没有这类的功能.有可能是python独有功能,遂百度,未发现相关介绍. python为动态语言,且为面向对象语言,一切为对象.函数也是一个对象,