История изменений
Исправление Aber, (текущая версия) :
Тот код с MRO я только что запустил на интерпретаторе python3, похоже в тетей версии выкинули legacy MRO.
Python 3.5.2
class A: x = 'a'
class B(A): pass
class C(A): x = 'c'
class D(B, C): pass
D.x # вернет 'c'
Python 2.7.12
D.x # вернет 'a', С.x окажется скрыт
Опасно конечно, но раз сделали такое большое обновление могли бы наверное из синтаксиса убрать обязательные self, т.е. по умолчанию чтоб биндинг контектса внутри метода был к self, конечно такое изменение потянула бы за собой и изменения в декларировании статических членов класса. Но я повторюсь, я изначально просто перечислил, что конкретно мне не понравилось в python при первом взгляде на этот язык. Просто тут так много людей которые критикую python за отступы, а я считаю это совсем неважным.
Исходная версия Aber, :
Тот код с MRO я только что запустил на интерпретаторе python3, похоже в тетей версии выкинули legacy MRO.
Python 3.5.2
class A: x = 'a'
class B(A): pass
class C(A): x = 'c'
class D(B, C): pass
D.x # вернет 'c'
Python 2.7.12
D.x # вернет 'a', С.x окажется скрыт
Опасно конечно, но раз сделали такое большое обновление могли бы наверное из синтаксиса убрать обязательные self, т.е. по умолчанию чтоб биндинг контектса внутри метода был к self, конечно такое изменение потянула бы за собой и изменения в декларировании статических членов класса. Но я повторюсь, я изначально просто перечислил, что конкретно мне не понравилось в python при первом взгляде на этот язык. Просто тут так много людей которые критикую python обращают внимание на отступы, а я считаю это совсем неважным.