3

По PEP8 название фунции должны быть нижним регистром и отделяться нижним анрскором, но сама стандартная библиотека не соблюдает этого стандарта? также и относится к классам.

Oma Dt
  • 575
  • Примеры можете привести? Мне вспоминается только названия встроенных типов вроде list или tuple, которые не является обычными питон-классами, поэтому и написание названий не такое, как у классов. – Xander Aug 03 '19 at 20:59
  • Так что вам нужно, можно уточнить вопрос? – Lo_okiMan Aug 03 '19 at 21:08
  • так ведь встроенные (tuple, type, list) все они определены как класс почему написание название не следует PEP8? так и методы у некоторых классов через camel case, так ведь не по PEP все) – Oma Dt Aug 03 '19 at 21:24
  • Исторически сложилось. – andreymal Aug 03 '19 at 21:29

1 Answers1

3

Встроенные типы не являются классами, подобными обычным пользовательским классам.

До версии питона 2.2 такие имена как list, tuple, int были просто функциями, поэтому и писались с маленькой буквы. В отличие от пользовательских классов, от встроенных типов нельзя было наследоваться. Были ещё небольшие отличия от обычных классов.

Начиная с версии 2.2 встроенные типы и пользовательские классы почти полностью уравняли в правах, но имена остались старыми, чтобы не ломать уже существующий код.

По поводу названий методов в PEP8 написано:

mixedCase is allowed only in contexts where that's already the prevailing style (e.g. threading.py), to retain backwards compatibility

mixedCase допускается только в тех случаях, когда это уже преобладающий стиль (например, threading.py), чтобы сохранить обратную совместимость

То есть так уже было до того, как PEP8 был написан, и, соответственно, опять-таки не стали ничего исправлять, чтобы не ломать уже существующий код.

Xander
  • 20,499
  • Огромное спасибо, я узнал то что хотел узнать, надо бы нормально история python почитать))) – Oma Dt Aug 03 '19 at 22:06