Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 11, 2019 13:50:36

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

PyObject

привет…. вопрос простой: что такое PyObject? это указатель на объект? или что?

Офлайн

#2 Ноя. 11, 2019 14:55:53

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

PyObject

http://qaru.site/questions/9493715/what-is-a-pyobject-in-python



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

Офлайн

#3 Ноя. 11, 2019 15:22:46

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

PyObject

кажется ничего не понял….



приблизился к тому, что pyoject -это своего рода класс или структура, в котором полями будет тип, значение и количество ссылок.

 namevar=11
будет создан pyobject полями которого будут значение:11 , поле type:int reference:0

если сделаю namevar=namevar+1 то опять будет создан pyobject c теми же полями, но значение 11 изменится на значение 12. reference будет =1


я правильно понимаю?

Офлайн

#4 Ноя. 11, 2019 16:46:11

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

PyObject

pythonmaks
я правильно понимаю?
не совсем, PyObject Это тип, который содержит информацию, необходимую Python для обработки указателя на объект как объекта. В обычной сборке «release» он содержит только счетчик ссылок на объект и указатель на объект соответствующего типа. На самом деле ничего не объявляется как PyObject , но каждый указатель на объект Python может быть приведен к PyObject*
Все типы объектов являются расширениями этого типа.
https://docs.python.org/3/c-api/structures.html

pythonmaks
namevar=11
будет создан pyobject полями которого будут значение:11…
если сделаю namevar=namevar+1 то опять будет создан pyobject c теми же полями, но значение 11 изменится на значение 12…
Нет, будет создан совсем другой обьект (PyInt), но этот обьект(PyInt) будет так или иначе наследоваться от PyObject



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

Офлайн

#5 Ноя. 11, 2019 18:14:58

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

PyObject

я не понял… в Python, что есть указатели?

Офлайн

#6 Ноя. 11, 2019 19:01:11

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

PyObject

> я не понял… в Python, что есть указатели?

PyObject это не про Python, а про C.



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

Офлайн

#7 Ноя. 12, 2019 12:36:43

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

PyObject

объясните пожалуйста

Офлайн

#8 Ноя. 12, 2019 12:58:39

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

PyObject

pythonmaks Ну смотри пайтон это язык програмирования, тоесть, по сути, это просто набор правил что какая команда делает.
А есть реализация(имплементация) языка програмирования, тоесть это уже конкретная программа которая обрабатывает исходный текст на ЯП и непосредсвенно выволняет комманды(интерпретатор) или переводит их в инструкции процессора(компилятор)
Вот такой имплементацией и является cpython(это то что вы скачиваете и устанавливаете с python.org) который написан на си. И вот внутрях этого cpython есть эти самые PyObject, ссылки, указатели и прочее



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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version