• python使用内置方法和修饰器方法获取类名、函数名


    1. 外部获取

    从外部的情况好获取,可以使用指向函数的对象,然后用__name__属性。

    def a():
      pass
    a.__name__

    或者

    getattr(a,'__name__')

    2. 内部获取

    1)使用修饰器的方法

        使用修饰器就可以对函数指向一个变量,然后取变量对象的__name__方法。

    def timeit(func):
    def run(*argv):
      print func.__name__
      if argv:
        ret = func(*argv)
      else:
        ret = func()
      return ret
    return run
    
    @timeit
    def t(a):
      print a 
    t(1)

    2)使用sys模块的方法

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

    二、 使用inspect模块动态获取当前运行的函数名

           动态获取当前运行的函数名很方便,特别是对于一些debug系统来说

    import inspect
    
    def get_current_function_name():
      return inspect.stack()[1][3]
    class MyClass:
      def function_one(self):
        print "%s.%s invoked"%(self.__class__.__name__, get_current_function_name())
    if __name__ == "__main__":
      myclass = MyClass()
      myclass.function_one()
  • 相关阅读:
    任务框架--Quartz 配置文件
    地址和值
    线性基学习笔记
    S07
    如何在实际项目中使用PageHelper分页插件
    设计模式:原型模式
    常用JS代码片段
    Thomson Plaza里面的三家店以及水果大会
    13.搜索过滤
    07-多线程
  • 原文地址:https://www.cnblogs.com/code1992/p/11269958.html
Copyright © 2020-2023  润新知