【问题标题】:Python : Acces to className in a class method from the daughter classPython:从子类访问类方法中的类名
【发布时间】:2018-10-21 15:51:54
【问题描述】:
我的问题很简单,我有:
class A(object):
def methodA():
print(__class__)
class B(A):
pass
B.methodA()
#<class '__main__.A'>
我想要类 'main.B' 而不覆盖类 B 中的方法A。
如果有帮助,A 可以是抽象类
【问题讨论】:
标签:
python
inheritance
class-method
classname
【解决方案1】:
使用@classmethod:
In [5]: class A:
...: @classmethod
...: def foo(cls):
...: print(cls)
...:
...:
In [6]: class B(A):
...: pass
...:
In [7]:
In [7]: b = B()
In [8]: b.foo()
<class '__main__.B'>
In [9]: a = A()
In [10]: a.foo()
<class '__main__.A'>