Доступ к адресу памяти объекта

, если база данных создана и вы начали соединение с ней, тогда вам нужно добавить банку драйвера. из окна проекта щелкните правой кнопкой мыши папку библиотек, перейдите в: programfiles \ sun \ javadb \ lib \ derbyclient.jar. загрузите файл, и вы сможете его запустить.

все лучшее

147
задан iBug 13 January 2019 в 04:44
поделиться

6 ответов

руководство Python говорит следующее [приблизительно 110]:

Возврат "идентификационные данные'' объекта. Это - целое число (или длинное целое), который, как гарантируют, будет уникальным и постоянным для этого объекта в течение его времени жизни. Два объекта с неперекрывающимся временем жизни могут иметь тот же идентификатор () значение. (Примечание реализации: это - адрес объекта.)

Так в CPython, это будет адресом объекта. Никакая такая гарантия любого другого интерпретатора Python, все же.

Примечание, что, если Вы пишете расширение C, у Вас есть полный доступ к внутренностям интерпретатора Python, включая доступ к адресам объектов непосредственно.

182
ответ дан cs95 13 January 2019 в 04:44
поделиться

С ctypes, можно достигнуть того же самого с

>>> import ctypes
>>> a = (1,2,3)
>>> ctypes.addressof(a)
3077760748L

Документация:

addressof(C instance) -> integer
Возврат адрес экземпляра C внутренний буфер

Примечание, которое в CPython, в настоящее время id(a) == ctypes.addressof(a), но ctypes.addressof должно возвратить действительный адрес для каждой реализации Python, если

  • ctypes поддерживается
  • , указатели памяти являются допустимым понятием.

Редактирование : добавленная информация о независимости интерпретатора ctypes

4
ответ дан Torsten Marek 13 January 2019 в 04:44
поделиться

Можно получить что-то подходящее с этой целью с:

id(self)
2
ответ дан Thomas Wouters 13 January 2019 в 04:44
поделиться

Просто используйте

id(object)
46
ответ дан Ben Hoffstein 13 January 2019 в 04:44
поделиться

Вы могли повторно реализовать значение по умолчанию repr этот путь:

def __repr__(self):
    return '<%s.%s object at %s>' % (
        self.__class__.__module__,
        self.__class__.__name__,
        hex(id(self))
    )
64
ответ дан Armin Ronacher 13 January 2019 в 04:44
поделиться

В то время как это верно, что id(object) получает адрес объекта в реализации CPython по умолчанию, это вообще бесполезно..., Вы не можете делать что-либо с адресом от чистого кода Python.

единственное время Вы на самом деле были бы в состоянии использовать адрес, из дополнительной библиотеки C..., в этом случае, это тривиально для получения адреса объекта, так как объекты Python всегда раздаются как C указатели.

0
ответ дан Dan Lenski 13 January 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: