python中查看函数帮助,python里如何调用函数

  python中查看函数帮助,python里如何调用函数

  可以从任何代码对象(以及扩展模块/内置项)调用:从exec,execfile,从模块名称空间(导入期间),从类定义内,从方法/类方法/静态方法中,从修饰函数/方法,从嵌套函数中。-所以总的来说没有"召唤功能",而且很难用它做任何好事。在

  堆栈帧及其代码对象是您可以获得并检查属性的最通用的。在

  这个函数在很多情况下都可以找到调用函数:导入系统,检查

  def get_calling_function():

  在许多情况下找到调用函数。

  fr=sys ._获取帧(1)# inspect。stack()[1][0]

  co=fr.f _代码

  为了进入(

  :fr。全球公司[公司名称],

  lambda:getattr(fr。f _ locals[ self ],co.co_name),

  lambda:getattr(fr。f _ locals[ cls ],co.co_name),

  :fr。f _ back。f _ locals[co . co _ name],# nested

  :fr。f _ back。f _ locals[ func ],# decorators

  :fr。f _ back。f _ locals[ meth ],

  lambda:fr.f_back.f_locals[f],

  ):

  尝试:

  func=get()

  except (KeyError,AttributeError):

  及格

  否则:

  if func .__code__==co:

  返回功能

  引发AttributeError("找不到func”)

  #用法

  def f():

  def nested_func():

  打印获取调用函数()

  打印获取调用函数()

  nested_func()

  Y类:

  定义方法(自我,a,b=10,c=11):

  打印获取调用函数()

  Z类:

  定义方法(自我):

  打印获取调用函数()

  z=Z()

  方法()

  返回z

  @classmethod

  定义clsmeth:

  打印获取调用函数()

  @静态方法

  def staticmeth():

  打印获取调用函数()

  f()

  y=Y()

  z=y.meth(7)

  方法()

  y.clsmeth()

  #会失败

  它发现:

  ^{pr2}$

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: