Python: терминология 'class' VS 'type'

Просто вопрос: когда я должен использовать термин «класс», и когда следует использовать термин «тип» в Python?

  • является «классом» только для пользовательских типов и «type» для встроенных типов?
  • или теперь, когда все это тип … я должен использовать всегда «тип» даже для пользовательских классов?
  • …?

  • сделать всплывающее окно matplotlib в качестве активного
  • Сортировка баллов и названий в алфавитном порядке, в среднем, от наивысшего до самого низкого
  • Является ли «с» монадическим?
  • Как я могу нарисовать текст с разными штрихами и заполнить цвета на изображениях с помощью python?
  • web2py - как вводить html
  • Заполнение отверстий в объектах, которые касаются границы изображения
  • Неточный логарифм в Python
  • построение 3d-рассеяния в matplotlib
  • 5 Solutions collect form web for “Python: терминология 'class' VS 'type'”

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

    Изменить: я использую « class », когда ссылаюсь на конкретные реализации и « type » более неформальным образом, когда речь идет о структурах данных высокого уровня, архитектуре приложений и т. Д. В моем мышлении тип является более общим, я не думаю каждого класса как отдельный тип.

    Кроме того, когда я использую метаклассы (очень редко), я говорю о типах.

    Класс – это структура данных Python, которая может использоваться как шаблон для экземпляров этого класса, вызвав его, например foo = Foo() .

    Тип – это класс, который можно использовать в качестве шаблона для дополнительных классов путем наследования, например, class Foo(Bar):

    Поскольку Python поддерживает наследование, все классы могут использоваться в качестве шаблонов для дополнительных классов, а это означает, что все классы на самом деле являются типами.

    Это особенно верно с момента появления «классов нового стиля», полученных из object , которые унифицируют иерархию типов пользовательских классов со встроенными типами. Классы всегда были типами, но теперь они являются такими же типами, как и встроенные типы.

    Хотя классы Python являются типами, я все же считаю различие полезным, поэтому термины не являются полностью синонимами в моем сознании.

    Определение бонуса: метакласс – это класс, экземпляры которого являются классами. В Python они должны быть получены из класса type , так же как объекты нового типа производятся от object.

    Я использую «тип», чтобы ссылаться на общий случай, но я переключаюсь на «класс», когда говорю об атрибутах.

    Но это действительно неважно, что вы выбираете.

    {} имеет тип dict . Метод iteritems() класса dict возвращает итератор.

    Можно сказать, что объект во время выполнения имеет определенный тип, но с помощью (множественного) наследования его можно рассматривать как принадлежащий нескольким классам.

    Это может не ответить на ваш вопрос напрямую, но это может дать вам представление о различии между типом и классом.

     class Card: def __init__(self, suit=0, rank=0): self.suit = suit self.rank = rank card1 = Card() 

    Card – это объект класса, поэтому его тип является type .

    Однако card1 является экземпляром Card , поэтому его тип – Card .

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