【发布时间】:2010-02-08 14:05:28
【问题描述】:
假设我使用foo 方法定义了以下类:
class MyClass:
def foo(self):
print "My name is %s" % __name__
现在当我打电话给foo() 时,我希望/希望看到这个打印出来
My name is foo
但是我得到了
My name is __main__
如果我将类定义放入一个名为 FooBar 的模块中,我会得到
My name is FooBar
如果我这样做了
m = MyClass()
print m.foo.__name__
我得到的正是我想要的
My name is foo
有人可以帮助解释为什么__name__ 指的是模块而不是方法名称吗?
有没有简单的方法来获取方法名?
非常感谢
【问题讨论】:
-
为什么需要这样做?你在解决什么问题?
标签: python methods introspection