Найти - Пользователи
Полная версия: ооп
Начало » Python для новичков » ооп
1
pythonmaks
привет

подскажите пожалуйста , что такое объект в классе?
PEHDOM
Хмм, хотелось бы более конкретно потому как есть нюансы.
В общем объект - некоторая сущность в компьютерном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы.
Но вот в англоязычной документации обычно используються термины class object и class instance. Если их дословно перевести на русский, то получится все наоборот: class object — этот объект, в котором хранится, так сказать, информация о классе. а уже class instance - это экземпляр класса.
DamMercul
pythonmaks
приветподскажите пожалуйста , что такое объект в классе?
Еще добавлю, что в питоне объеткты, “находящиеся вне класса”, все же в классе, он называется __main__, ты к нему никак не обратишься (он только для самого интерпретатора), но все-таки объекты все находятся в классах
pythonmaks
ребята, спасибо Вам огромное…
но вот чем дальше, тем больше путаюсь…

Экземпляр некоторого класса A — это объект, у которого в атрибуте __class__ есть ссылка на класс A.
как это понять?
PEHDOM
pythonmaks
Экземпляр некоторого класса A — это объект, у которого в атрибуте __class__ есть ссылка на класс A.
йопта, ну и накой вас понесло в такие дебри? более черезжопогладовырывательного описания я не встречал, хотя формально описание верно. Для понимания классов это общем не нужно, это уже особенности устройства конкретной реализации для тех кто уже более-менее знает пайтон.
Ну смотри есть класс, он же class objec, это как шаблон,
например :
 class A:
    pass
А по нему создаются экземпляры(инстансы, обьекты).
 a= A()
тоесть у нас есть класс называемый А, а есть экземпляр класса А связаный с переменной а. так вот у экземпляра класса есть атрибут __class__ который содержит ссылку на его тип . У Самого класса тоже есть ровно такой же атрибут он обычно равен ‘type’ что означает что это класс а не экземпляр.
 >>>print(a.__class__)
<class '__main__.A'>
>>>print(A.__class__)
<class 'type'>

Все данные в пайтоне — это объекты. Каждый объект имеет 2 специальных атрибута __class__ и __dict__
__class__ — определяет класс или тип, экзмепляром которого является объект
__dict__ словарь, дающий доступ к внутреннему пространству имен, он есть почти у всех объектов, хотя у многих встроенных типов его нет, также его нет если в классе обьявлен атрибут __slots__ но это уже другая история.
В __dict__ — находятся внутренние (или специфичные для объекта) атрибуты, но там нет методов класса, дескрипторов, классовых переменных, свойств, статических методов класса, все они определяются динамически как раз с помощью класса из __class__ атрибута.
pythonmaks
то есть, когда объект принадлежит определенному классу, он экземпляр этого класса… так?
объект может принадлежат нескольким классам, а экземпляр, только какому-то конкретному. в этом между ними отличие? или нет?
давайте добъем этот вопрос
Rodegast
Ну я вижу ты совсем запутался, вот тут я объяснял что такое ООП бедолаги вроде тебя. Почитай может поймёшь.
AleksandrPavlovich
Классы определяют, чтобы создавать объекты-экземпляры класса.
Но и сами классы (“описания” объектов-экземпляров) тоже являются объектами - “объекты-классы”.
К этому надо привыкнуть.
DamMercul
ахххххх, смотри. Создавая экземпляр класса, ты создаешь новый, отдельный объект, никак не привязанный к классу экземпляр которого ты делал, только типы совпадут. И меняя экземпляр, меняя переменные, никаким образом ты класс от которого экземпляр делал, не затронешь
doza_and
DamMercul
ты создаешь новый, отдельный объект, никак не привязанный к классу
DamMercul
И меняя экземпляр, меняя переменные, никаким образом ты класс от которого экземпляр делал, не затронешь

 class Ta:
    pass
a=Ta()
a.__class__.a=1
print(Ta.a)
>>> 1

В трех предложениях две грубейшие ошибки.
pythonmaks Критично относитесь к тому что пишут.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB