Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 19, 2018 02:31:43

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

ооп

привет

подскажите пожалуйста , что такое объект в классе?

Офлайн

#2 Авг. 20, 2018 14:55:35

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

ооп

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Авг. 20, 2018 15:25:20

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

ооп

pythonmaks
приветподскажите пожалуйста , что такое объект в классе?
Еще добавлю, что в питоне объеткты, “находящиеся вне класса”, все же в классе, он называется __main__, ты к нему никак не обратишься (он только для самого интерпретатора), но все-таки объекты все находятся в классах



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Авг. 20, 2018 15:26:09)

Офлайн

#4 Авг. 20, 2018 18:10:27

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

ооп

ребята, спасибо Вам огромное…
но вот чем дальше, тем больше путаюсь…

Экземпляр некоторого класса A — это объект, у которого в атрибуте __class__ есть ссылка на класс A.
как это понять?

Офлайн

#5 Авг. 21, 2018 15:03:43

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

ооп

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__ атрибута.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Авг. 21, 2018 15:20:42)

Офлайн

#6 Авг. 23, 2018 13:09:13

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

ооп

то есть, когда объект принадлежит определенному классу, он экземпляр этого класса… так?
объект может принадлежат нескольким классам, а экземпляр, только какому-то конкретному. в этом между ними отличие? или нет?
давайте добъем этот вопрос

Офлайн

#7 Авг. 23, 2018 15:35:45

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

ооп

Ну я вижу ты совсем запутался, вот тут я объяснял что такое ООП бедолаги вроде тебя. Почитай может поймёшь.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#8 Авг. 23, 2018 21:21:29

AleksandrPavlovich
Зарегистрирован: 2018-08-23
Сообщения: 4
Репутация: +  1  -
Профиль   Отправить e-mail  

ооп

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

Отредактировано AleksandrPavlovich (Авг. 23, 2018 21:22:12)

Офлайн

#9 Авг. 23, 2018 22:37:02

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

ооп

ахххххх, смотри. Создавая экземпляр класса, ты создаешь новый, отдельный объект, никак не привязанный к классу экземпляр которого ты делал, только типы совпадут. И меняя экземпляр, меняя переменные, никаким образом ты класс от которого экземпляр делал, не затронешь



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#10 Авг. 24, 2018 08:59:52

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

ооп

DamMercul
ты создаешь новый, отдельный объект, никак не привязанный к классу
DamMercul
И меняя экземпляр, меняя переменные, никаким образом ты класс от которого экземпляр делал, не затронешь

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

В трех предложениях две грубейшие ошибки.
pythonmaks Критично относитесь к тому что пишут.



Отредактировано doza_and (Авг. 24, 2018 09:00:14)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version