我想得到一个子类的类

时间:2011-03-12 22:08:15

标签: python

我是否可以在一个要进行子类化的类中获取其子类实例的类变量?像这样:

class A:
    ...
    def doStuff(self):
        c = getChildClass(self)
        setattr(c, 'anAttribute', value)

我想要做一些有趣的备忘​​录,这将使任务变得更加容易。

2 个答案:

答案 0 :(得分:4)

如果您指的是实例本身的类,请使用self.__class__

答案 1 :(得分:1)

In [1]: class A(object):
   ...:     def doStuff(self):
   ...:         c = self.__class__
   ...:         print c, c.__name__
   ...:         setattr(c, 'moo', 'meow')

In [2]: class B(A):
   ...:     pass
   ...:

In [3]: B().doStuff()
<class '__main__.B'> B

In [4]: B.moo
Out[4]: 'meow'

所以,self.__class__就是您所需要的。