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()