Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2010 13:29:01

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

Не могу нигде найти информации как в питоне сделать что-то вроде ссылки на объект. Более конкретно - нужно обращаться к одному экземпляру объекта, из нескольких функций в многопоточном режиме. Нашел упоминание о такой штуке как aliasing, но не могу найти инфу по теме.



Офлайн

#2 Фев. 27, 2010 13:51:23

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Ссылка на объект

Передать как элемент списка, например.

Офлайн

#3 Фев. 27, 2010 13:53:24

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

А более тривиального способа не предусмотрено? Мне такой прием представляется костылем ).



Офлайн

#4 Фев. 27, 2010 16:40:37

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ссылка на объект

>>> a = object()
>>> b = a
>>> a is b
True
Что вам еще нужно?



Офлайн

#5 Фев. 27, 2010 18:58:35

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

А вот в этом случае:

In [1]: a = 1
In [2]: b = 1
In [3]: a is b
Out[3]: True
это питон автоматически сослал два имени на один объект?

добавлено:
а вот это совсем непонятно :)
In [1]: a = 1
In [2]: b = 1
In [3]: a is b
Out[3]: True
In [4]: a = 1000000
In [5]: b = 1000000
In [6]: a is b
Out[6]: False
In [7]: a = 1
In [8]: b = 1
In [9]: a is b
Out[9]: True



Отредактировано (Фев. 27, 2010 19:01:14)

Офлайн

#6 Фев. 27, 2010 19:01:08

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

инты вроде и строки до какойто длины кешируюца



Офлайн

#7 Фев. 27, 2010 19:02:26

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

Спасибо, это все объясняет



Офлайн

#8 Фев. 28, 2010 10:18:00

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

Спасибо за комментарии. Пошел учить матчасть)



Офлайн

#9 Март 1, 2010 11:37:35

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Ссылка на объект

хеш тут не причем. имхо, просто в шелле питон не создает вторую единичку, а использует ссылку на первую, и почему-то не делает этого для 1000000.



Отредактировано (Март 1, 2010 11:39:29)

Офлайн

#10 Март 1, 2010 15:25:07

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ссылка на объект

Как же кеш не при чем? Смотрите
http://svn.python.org/view/python/trunk/Objects/intobject.c?view=markup, PyObject* PyInt_From_Long(long).
Если число в диапазоне [-NSMALLNEGINTS, NSMALLNEGINTS) - оно берется именно из кеша. NSMALLNEGINTS - немного меньше сотни, кажется.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version