Я хочу получить свой собственный объект через идентификатор объекта. Я хочу отправить объект в процессор, но когда процессор входит внутрь, появляется другой объект (другой идентификатор). Теперь я хочу получить объект в этом процессе по его идентификатору (разыменование). Я делаю это, но это не работает:
import _ctypes
def di(obj_id):
""" Inverse of id() function. """
return _ctypes.PyObj_FromPtr(obj_id)
Но так как это в другом процессе, а данные процессов не являются общий, объект не может быть возвращен. (Я думаю, что это причина)
Вот мой код:
def run_embedded(handler_id, connection_file):
print(handler_id)
handler_obj = di(handler_id) #doesn't work
def do(handler_id):
connection_file = os.path.join(
tempfile.gettempdir(),
'connection-{:d}.json'.format(os.getpid()))
try:
p = multiprocessing.Process(
target=run_embedded,
args=(handler_id, connection_file,),
)
p.start()
p.join()
def main():
handler = Handler() #I want to get this obj in run_embedde method
print(id(handler))
do(id(handler))
if __name__ == "__main__":
main()
Кто-нибудь знает, что делать, чтобы получить мой объект?
َ Любой ответ будет оценен ! Спасибо'S