Представьте, что у меня есть три класса, как показано во фрагменте кода.
В классе A у меня есть переменная класса и метод класса, к которому я хотел бы обратиться в классе C после множественного наследования, т. Е. C (A, B) где B - просто другой класс. Я обнаружил, что могу получить доступ как к методу класса, так и к переменной с помощью self. , super (). или с помощью использования имени класса его self, то есть A.
Вопрос в том, каким может быть рекомендуемый способ доступа, если таковой имеется. Или все три одинаково хороши? Заранее спасибо. С уважением, DS
class A():
school='XYZ'
def __init__(self):
print('in init A')
def feature1(self):
print('Feature1-A working')
def feature2(self):
print('Feature2-A working')
@classmethod
def show_avg(cls,m1,m2,m3):
return (m1+m2+m3)/3
@classmethod
def info(cls):
return cls.school
class B():
def __init__(self):
print('in init B')
def feature3(self):
print('Feature1-B working')
def feature4(self):
print('Feature2-B working')
class C(A,B):
def __init__(self):
super().__init__()
print('in init C')
def get_avg_from_super_class(self):
avg1=self.show_avg(2,3,4)
avg2=super().show_avg(2,3,4)
avg3=A.show_avg(2,3,4)
print('avg by calling self:{}, avg by calling super():{}, avg by alling class name:{}'.format(avg1,avg2,avg3))
def get_info(self):
print (A.info())
print(self.info())
print(super().info())