LINUX.ORG.RU

История изменений

Исправление 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 обращают внимание на отступы, а я считаю это совсем неважным.