Рассмотрим следующий код:
class Car():
velocity = 1
class Chrysler(Car):
pass
class Ford(Car):
pass
print(f"Car:\t\t {Car.velocity}")
print(f"Chryler:\t {Chrysler.velocity}")
print(f"Ford:\t\t {Ford.velocity}")
print()
Car.velocity = 3
print(f"Car:\t\t {Car.velocity}")
print(f"Chryler:\t {Chrysler.velocity}")
print(f"Ford:\t\t {Ford.velocity}")
print()
Ford.velocity = 2
Car.velocity = 3
print(f"Car:\t\t {Car.velocity}")
print(f"Chryler:\t {Chrysler.velocity}")
print(f"Ford:\t\t {Ford.velocity}")
print()
Car.velocity = 4
print(f"Car:\t\t {Car.velocity}")
print(f"Chryler:\t {Chrysler.velocity}")
print(f"Ford:\t\t {Ford.velocity}")
Выходные данные:
Car: 1
Chryler: 1
Ford: 1
Car: 3
Chryler: 3
Ford: 3
Car: 3
Chryler: 3
Ford: 2
Car: 4
Chryler: 4
Ford: 2
Когда я впервые изменил скорость на три, все унаследованные классы изменили свою статическую переменную на три.Однако, если я изменю переменную скорости Ford, я больше не смогу изменить переменную скорости Ford, просто изменив атрибут Car.
Почему это так?Я бы ожидал, что Форду тоже будет четыре.