Python: доступ к className в методе класса из дочернего класса - PullRequest
0 голосов
/ 11 мая 2018

Мой вопрос просто задать, у меня есть:

class A(object):
    def methodA():
        print(__class__)
class B(A):
    pass

B.methodA()
#<class '__main__.A'>

Я хотел бы иметь класс ' main .B' без метода перезаписи A в классе B.

A может быть абстрактным классом, если это поможет

1 Ответ

0 голосов
/ 11 мая 2018

Использование @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'>
...