Если соглашение в Python состоит в том, чтобы использовать классы, почему тогда list () не капитализируется? Разве это не класс?

Часто, когда я вижу определения class Foo: я всегда вижу, что они начинаются с букв верхнего регистра.

Однако, это не список [] или dict {} или какой-либо другой встроенный тип, класс? В этом случае все, введенное в IDLE Python, которое является ключевым словом, которое автоматически цветовое кодирование в фиолетовом (с бинарным дистрибутивом Window), само по себе является классом?

Например, spam = list()

spam теперь является экземпляром list()

Поэтому мой вопрос: почему python позволяет нам в первую очередь делать что-то вроде list = list() когда никто, вероятно, не делает этого. Но также, почему это не list = List()

Разве разработчики языка решили не использовать какое-либо соглашение, в то время как большинство программистов на Python называют их классы как таковые?

  • Автозагрузка в Python
  • Недопустимое имя пользователя Pylint
  • Каков стандартный формат docstring Python?
  • Python `if x is not None` или` if not x is None '?
  • Экстренные пробелы при печати
  • Вкладки и пробелы в программировании на Python
  • 4 Solutions collect form web for “Если соглашение в Python состоит в том, чтобы использовать классы, почему тогда list () не капитализируется? Разве это не класс?”

    Да, начальные классы в верхнем регистре – это соглашение, как указано в PEP 8 .

    Вы правы, что многие встроенные типы не следуют этому соглашению. Это задержки с предыдущих этапов Python, когда было намного больше различий между пользовательскими классами и встроенными типами. Тем не менее, по-прежнему кажется, что встроенные или расширения типов, написанные на C, более вероятно, имеют имена нижнего регистра (например, numpy.array , а не numpy.Array ).

    Тем не менее, соглашение состоит в том, чтобы использовать начальный регистр-начальный для ваших собственных классов в коде Python.

    PEP8 – это место для стиля кода.

    Чтобы ответить на вопрос о том, почему list = list() действителен, list – это просто имя в глобальном пространстве имен и может быть переопределено, как любая другая переменная.

    Согласно PEP 8 , хороший набор рекомендаций для разработчиков Python:

    Почти без исключения имена классов используют соглашение CapWords. Классы для внутреннего использования также имеют лидирующий символ подчеркивания.

    PEP 8 направлен на разработку Python для стандартной библиотеки в основном дистрибутиве Python, но для этого необходимы разумные рекомендации.

    Я думаю, что единственный человек, который действительно знает весь ответ на ваш вопрос, – это BDFL . Конвенция за пределами типов, реализованных на С, определенно должна использовать верхний регистр (как указано в PEP8). Однако интересно отметить, что не все типы C-уровня следуют за соглашением (т.е. Py_True , Py_False ) этого не делают. Да, это константы на уровне Python, но все они PyTypeObject s. Мне было бы интересно узнать, является ли это единственным отличием и, следовательно, различием в конвенции.

    Python - лучший язык программирования в мире.