LINUX.ORG.RU

Какая разница между экземпляром и объектом?

 ,


0

2

Изучая ООП, немного запутался. Хотелось бы прояснить этот вопрос

Как я понял из контекста, это одно и тоже. Но можно увидеть выражения типа «объект экземпляра» - тут я окончательно путаюсь



Последнее исправление: kramh (всего исправлений: 3)

Что это за слова? Дай определения.

unt1tled ★★★★
()

объектом

это definition класса, его определение и описание

экземпляром

это когда делаешь New того что описал в definition класса

надеюсь понятно объяснил

q11q11 ★★★★★
()

Но можно увидеть выражения типа «объект экземпляра»

Это скорее всего был просто говноперевод.

Например, в книге Липпмана по С++ есть похожий говноперевод выражения «class type» как «тип класса».

anatoly
()

Объект, конкретно в питоне, это сущность удовлетворяющая определённому интерфейсу. В частности, у объекта есть список методов (поле __dict__) и ссылка на его тип (поле __class__). Практически все сущности, с которыми можешь работать в питоне, есть объекты. Классы, т.е. на что указывает поле __class__, тоже являются объектами.

Экземпляр (instance) понятие логическое, в питоне под ним подразумевается объект определённого типа. Т.е. объект у которого __class__ указывает на тип X называется экземпляром типа X.

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

mashina ★★★★★
()
Последнее исправление: mashina (всего исправлений: 4)

Такая же, как между теплым и мягким. Одно — теплое, другое — мягкое.

Virtuos86 ★★★★★
()

В пхытоне всё есть объект. На самом деле, не всё, но поначалу можно считать, что всё. Экземпляр — сам по себе термин не имеет никакого смысла, смысл имеет термин «экземпляр класса». Экземпляр класса тоже объект, ведь в пхытоне всё объект.

Virtuos86 ★★★★★
()
Ответ на: комментарий от templarrr

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

mbivanyuk ★★★★★
()
Последнее исправление: mbivanyuk (всего исправлений: 1)
Ответ на: комментарий от templarrr
>>> class Me(object): pass
... 
>>> isinstance(Me, type)
True

Объект без object это легаси.

mashina ★★★★★
()

смотря как создавался

anonymous
()
Ответ на: комментарий от templarrr
In [1]: class A(object):
   ...:     pass
   ...: 

In [2]: type(A)
Out[2]: type

In [3]: class B:
    pass
   ...: 

In [4]: type(B)
Out[4]: classobj
anonymous
()
Ответ на: комментарий от mbivanyuk

Во многих языках (от Smalltalk до какого-нибудь Ruby) класс является экземпляром метакласса.

anonymous
()
Ответ на: комментарий от mbivanyuk

класс не может быть экземпляром по определению

Да ты оказвается, нулевой, инастояших ООП языков вообще не нюхал.

somequest
()
Ответ на: комментарий от somequest

Так называется дефолтный метакласс в питоне, экземплярами которого являются классы.

mix_mix ★★★★★
()
class A: pass
a = A()

A - «объект класса A», a - «экземпляр класса A». В отличии от плюсов в питоне это две большие разницы.

Если говорят «объект» (без слова «класса») - это все что угодно. Если говорят «экземпляр» (без слова «класса») - ИМНО это скорее про a, но я бы все же уточнил, это не вполне корректно.

AIv ★★★★★
()
Ответ на: комментарий от templarrr

так завезли там в питон метаклассы или ещё нет? продолжай наблюдение.

anonymous
()

«Экземпляром КЛАССА». Ваш GN.

«Каждый объект представляет собой _экземпляр_ класса.»(С) Джеймс Гослинг

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

Не поспоришь. Но при этом некоторые объекты являются еще и объектами класса. Такой вот объектно-экземплярный дуализм;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

Тогда сюда

https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html

Все в хорошем языке программирования очень логично.

Если возможности мало - «надстройка» Groovy c развитым «метаклассированием».

Bioreactor ★★★★★
()
Последнее исправление: Bioreactor (всего исправлений: 1)
Ответ на: комментарий от Bioreactor

Нет, спасибо, к моим задачам ява плохо подходит.

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.