在一个函数中如何知道调用者(Python)

类别:编程语言 点击:0 评论:0 推荐:

在一个函数中

def fun():pass

这个函数如何知道是谁调用了它呢?  在C类语言中好像是很难的。但在 Python中却很简单

 

import traceback

def fun():
      s =  traceback.extract_stack()
      print '%s Invoked me!'%s[-2][2]

这个 fun 函数就可以知道是谁调用了它,并打印出来, 我们来试一下:

 

>>> def a():fun()

>>> def b():fun()

>>> a()
a Invoked me!
>>> b()
b Invoked me!
>>>

ok! 怎么应用这个特性呢? 发挥各位的想象力了。

本文地址:http://com.8s8s.com/it/it27910.htm