天天看點

Python擷取目前運作函數的名稱、類方法名稱

擷取函數的名稱

在函數外部擷取函數的名稱,可以使用.__name__來擷取。

def test_func_name1():
  print('test')


func_name1 = test_func_name1.__name__
print(func_name1)  # test_func_name1      

在函數内部擷取目前函數的名稱,可以使用sys._getframe().f_code.co_name來擷取

import sys


def test_func_name2():
  print(sys._getframe().f_code.co_name)


test_func_name2()  # test_func_name2      

擷取類和方法名稱

擷取類名稱,可以用self.class.name

import sys

class Test1(object):
  def test1(self):
    print(self.__class__.__name__)


test1_obj = Test1()
test1_obj.test1()  # Test1      

擷取類裡面方法名稱,跟擷取函數名稱一樣sys._getframe().f_code.co_name)

class Test2(object):
  def test2(self):
    print('目前類的名為:', self.__class__.__name__)
    print('目前方法名稱為:', sys._getframe().f_code.co_name)


test2_obj = Test2()
test2_obj.test2()      

效果如下: