Get base class' name?
在python中,我定义了一个类:
1 | class Myclass(BaseModule): |
我想打印参数
像这样:
1 2 | class Myclass(BaseModule): logger.info("Argument=%s" % BaseModule.get_name()) |
号
不起作用:
1 2 | unbound method get_name() must be called with BaseModule instance as first argument (got nothing instead) |
您可以通过以下方式访问类的名称:
1 | BaseModule.__name__ |
正如错误所说,您需要先实例化(创建)basemodule的实例。
1 2 3 4 | class MyClass(BaseModule): def __init__(self): base_mod = BaseModule() logger.info("Argument=%s", base_mod.get_name()) |
它不是一个参数,它是
首先,您可以在这里找到您的答案:解决方案源
1 2 3 4 5 6 7 8 9 10 11 | >>> class Base(object): ... pass ... >>> class Derived(Base): ... def print_base(self): ... for base in self.__class__.__bases__: ... print base.__name__ ... >>> foo = Derived() >>> foo.print_base() Base |
。
如果要调用超类方法,可以使用
1 2 3 4 5 6 7 8 9 | class Base(object): def get_name(self): return"Base name" class Derived(Base): def __init__(self): print super(Derived, self).get_name() Derived() # prints 'Base name' |
号