如何读取(并放入新变量)存储在特定内存地址的数据?在
例如,我知道:
<nfqueue.queue; proxy of <Swig Object of type 'queue *' at 0xabd2b00> >
我希望将数据存储在0xabd2b00的新变量中,这样我就可以工作并使用对象的所有功能。假设我不能访问创建这个对象的原始变量。在
更新: 上面的问题已经回答了,所以我更新了我的问题。 假设我有两个python文件:file1.py和file2.py
文件1.py:
^{pr2}$在某个时刻线程被称为新的线程。在
文件2.py:
kolejka = nfqueue.queue()
在这里创建、绑定和打开队列。然后执行无休止的监听循环。结束它的唯一方法是解除绑定并关闭kolejka,但我希望file1.py这样做,因为它是一个“主”程序。新线程完成后,如何从文件中检索初始化的kolejka以正确关闭队列?在
当我尝试:
from file2 import kolejka
脚本从一开始就执行创建队列的所有过程(它还没有作为函数编写)。在
你不能-没有办法从特定地址读取数据。如果你没有(或无法检索)对你感兴趣的对象的引用,你就倒霉了。在
此外,即使你能从一个给定的地址读取数据,这也没用,因为除非你有对原始对象的引用,否则你无法知道从哪个地址读取数据。然后你就不需要从内存中读取原始数据了。在
更新-如何干净地终止子进程
在Python中,有一些方法可以在进程之间共享内存(例如multiprocessing模块)。不过,这对你的问题来说似乎有点过分了。由于您是从}进程在主程序退出时退出。在
new_thread
内启动file2
进程,最简单的解决方案可能是使用signal模块让new_thread
告诉{这允许}的详细信息,从而使代码更模块化,更易于维护。在
file2.py
在关闭之前执行任何所需的清理,而且它也是一个干净的解决方案,因为file1.py
不需要知道如何关闭{文件1.py
文件2.py
^{pr2}$相关问题 更多 >
编程相关推荐