Python相当于ruby的__method__?

时间:2009-11-20 17:30:55

标签: python ruby

我希望能够做到这一点:

def asdf():
  print __method__
"asdf"

谢谢, 诺亚

2 个答案:

答案 0 :(得分:8)

您需要指定您的用例,以便我们为您提供更好的答案。 你为什么要这样做?

您可以使用__name__

获取包含函数名称的字符串
def asdf():
    print asdf.__name__
"asdf"

但是,重点是什么?在这种情况下,您也可以直接打印名称。

在这种情况下会发生什么?

def asdf():
    print __method__

foo = asdf
foo()

打印"foo""asdf"

答案 1 :(得分:4)

使用追溯模块:

#!/usr/bin/env python
import traceback
def asdf():
    (filename,line_number,function_name,text)=traceback.extract_stack()[-1]
    print function_name
asdf()