Из справочника Python:
Каждый объект имеет идентификатор, тип и значение.
Операторы сравнения реализуют определенное представление о значении объекта. Их можно рассматривать как определение значения объекта косвенно, посредством реализации сравнения.
И Лучано Рамальо в своей книге «Fluent Python» говорит, что (на стр. 206 второго изд.):
Оператор == сравнивает значения объектов (данные, которые они содержат ), а is сравнивает их личности.
Итак, одно из возможных определений значения объекта (Я думаю, что это единственное определение ценности объекта, которое хоть как-то очень тщательно и без подробностей упомянуто в официальной ссылке) следующее. Значением объекта являются данные, которые используются методом __eq__() этого объекта. Но есть классы, которые не переопределяют этот метод. Какова ценность экземпляра такого класса?
Например, допустим, у нас есть некоторая функция f — экземпляр встроенной функции сорт. Этот класс не переопределяет __eq__(), поэтому в этом случае оператор == просто сравнивает идентификаторы своих операндов (если оба операнда являются функциями). Но я не думаю, что мы можем сказать, что значение объекта f совпадает с идентификатором f. Действительно, люди говорят, что пользовательские функции — это изменяемые объекты, другими словами, их значение можно изменить. Но невозможно изменить личность f (или любого другого объекта). Итак, значение f не равно id(f). Его следует определить по-другому, и я надеюсь, что его можно определить правильно (если не в Python вообще, то хотя бы в CPython).
Здесь, на stackoverflow, я видел некоторые определения функционального объекта значение, например здесь:
Это «значение» — это набор других значений, которых достаточно для определения точно такой же функции.
Но я не уверен, что это «каноническое» определение.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -an-object
Если класс не перегружает оператор ==, то каково значение объекта этого класса? ⇐ Python
Программы на Python
1730302675
Anonymous
Из справочника Python:
Каждый объект имеет идентификатор, тип и значение.
Операторы сравнения реализуют определенное представление о значении объекта. Их можно рассматривать как определение значения объекта косвенно, посредством реализации сравнения.
И Лучано Рамальо в своей книге «Fluent Python» говорит, что (на стр. 206 второго изд.):
Оператор == сравнивает значения объектов (данные, которые они содержат ), а is сравнивает их личности.
Итак, одно из возможных определений значения объекта (Я думаю, что это единственное определение ценности объекта, которое хоть как-то очень тщательно и без подробностей упомянуто в официальной ссылке) следующее. Значением объекта являются данные, которые используются методом __eq__() этого объекта. Но есть классы, которые не переопределяют этот метод. Какова ценность экземпляра такого класса?
Например, допустим, у нас есть некоторая функция f — экземпляр встроенной функции сорт. Этот класс не переопределяет __eq__(), поэтому в этом случае оператор == просто сравнивает идентификаторы своих операндов (если оба операнда являются функциями). Но я не думаю, что мы можем сказать, что значение объекта f совпадает с идентификатором f. Действительно, люди говорят, что пользовательские функции — это изменяемые объекты, другими словами, их значение можно изменить. Но невозможно изменить личность f (или любого другого объекта). Итак, значение f не равно id(f). Его следует определить по-другому, и я надеюсь, что его можно определить правильно (если не в Python вообще, то хотя бы в CPython).
Здесь, на stackoverflow, я видел некоторые определения функционального объекта значение, например здесь:
Это «значение» — это набор других значений, которых достаточно для определения точно такой же функции.
Но я не уверен, что это «каноническое» определение.
Подробнее здесь: [url]https://stackoverflow.com/questions/79141547/if-a-class-doesnt-overload-the-operator-then-what-is-the-value-of-an-object[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия