【发布时间】:2010-05-06 14:12:07
【问题描述】:
我正在尝试查找包含方法代码的类的名称。
在下面的示例中,我使用self.__class__.__name__,但当然这会返回self 是实例的类的名称,而不是包含test() 方法代码的类。 b.test() 将打印 'B' 而我想得到 'A'。
我查看了inspect 模块文档,但没有发现任何直接有用的东西。
class A:
def __init__(self):
pass
def test(self):
print self.__class__.__name__
class B(A):
def __init__(self):
A.__init__(self)
a = A()
b = B()
a.test()
b.test()
【问题讨论】:
-
你在编码的时候就知道了,不是吗?这是一个:
def test(self): print "A"。 -
我想避免复制类名。如果我将类名从
A更改为AA,我将是第一个忘记熟练使用print "A"语句的人。
标签: python introspection