Nano Hash - криптовалюты, майнинг, программирование

разница между переменной класса и атрибутом класса

Не могли бы вы объяснить разницу между переменной класса и атрибутом класса?

Согласно этой веб-странице, атрибуты класса — это переменные, принадлежащие сам класс.

Например:

class MP3FileInfo(FileInfo):
    "store ID3v1.0 MP3 tags"
    tagDataMap = {"title"   : (  3,  33, stripnulls),
                  "artist"  : ( 33,  63, stripnulls),
                  "album"   : ( 63,  93, stripnulls),
                  "year"    : ( 93,  97, stripnulls),
                  "comment" : ( 97, 126, stripnulls),
                  "genre"   : (127, 128, ord)}

На веб-странице указано, что tagDataMap является атрибутом класса. Но, согласно Tutorialspoint.com, "переменная класса – это переменная, совместно используемая всеми экземплярами. класса. Переменные класса определяются внутри класса, но вне любого из методов класса».

Итак, что Tutorialspoint.com называет переменной класса, а что Diveintopython.net называет атрибутом класса, это одно и то же? Я считаю, что между этими двумя терминами есть различия, и я хотел бы узнать.

Спасибо!

02.04.2014

  • Это одно и то же. 03.04.2014

Ответы:


1

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

Чтобы создать класс, вы пишете определение класса. Определение класса — это набор операторов, определяющих метод класса и атрибуты данных.

Расширяя это, в контексте объектно-ориентированного программирования объект, созданный из класса (который является планом), имеет как данные, так и процедуры. Данные в этом объекте, созданном из класса, известны как атрибуты данных объектов. В общем, атрибуты данных объекта — это просто переменные, которые ссылаются на данные. Процедуры, которые выполняет объект, являются методами. Таким образом, объект, созданный из класса, концептуально представляет собой автономную единицу, состоящую из атрибутов данных и методов, оперирующих с атрибутами данных.

Пример (который, надеюсь, проясняет ситуацию. Допустим, у нас есть класс насекомых. Класс насекомых описывает атрибуты данных и методы, которые могут иметь объекты определенного типа. Из этого класса мы можем создать 2 объекта: объект-шершень и объект mosquito. Объект шершень является экземпляром класса насекомых. Он имеет атрибуты данных и методы, описанные классом насекомых. Кроме того, объект mosquito является экземпляром класса насекомых. Он также имеет атрибуты данных и методы описывается классом насекомых.

02.04.2014
  • Абсолютно согласен Апалала. Решил, что это может помочь вернуться к некоторым основам ООП на случай, если возникнет путаница. 04.04.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..