class MyClass: var_one = 'class ' var_two = ['class'] var_three = ['', ''] def __init__(self): pass
И два дополнительных класса, наследуемых от базового:
class OneClass(MyClass): def __init__(self): self.var_one += ' One' self.var_two.append('One') self.var_three[0] = 'One' class TwoClass(MyClass): def __init__(self): self.var_one += ' Two' self.var_two.append('Two') self.var_three[1] = 'Two'
Создаются два объекта класса:
classOne = OneClass() classTwo = TwoClass()
И вот тут возникает вопрос, почему атрибут строкового типа var_one ведет себя предсказуемо, а атрибуты типа списка var_two и var_three принимают непонятные (для меня) значения:
print(classOne.var_one) > class One print(classOne.var_two) > ['class', 'One', 'Two'] print(classOne.var_three) > ['One', 'Two']
Откуда в объекте classOne появляются значения из класса TwoClass?