zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    iOS 表单 application/x-www-form-urlencoded
    iOS WebRTC
    静态库文件
    .crash 文件解析
    UIWebView转WKWebView,与前端交互的问题
    App Technical Support
    关于URL转义问题
    关于iOS架构相关的博客
    Mac Jenkins
    零碎知识点
  • 原文地址:https://www.cnblogs.com/code1992/p/11269958.html
Copyright © 2011-2022 走看看