Python - 获取实例

时间:2016-08-02 03:49:09

标签: python python-3.x

我正在尝试使用Python中的不同进程,并且在获取特定实例的PID时遇到一些困难。

例如,我在一个类中发送mainCar实例:

warehouse = Warehouse()
mainCar = Car().start()
warehouse.add(mainCar)

在仓库类中,我正在恢复mainCar变量并希望知道它的PID

如何使用mainCar变量获取进程ID?我将这个变量传递给另一个类,这个变量的进程ID与os.getpid()给我的不同。

提前致谢!

1 个答案:

答案 0 :(得分:2)

我认为你从根本上误解了正在发生的事情。你的问题仍然没有多大意义,因为对象有没有概念的PID。即使您使用多处理模块生成多个进程并使用队列传递对象,也没有Python函数会告诉您自动创建对象的进程的PID。

您可以在类中添加类似这样的内容来跟踪创建者PID:

class PID_Tracked(object):
    def __init__(self)
         self.originating_PID = os.getpid()

但除非您手动存储此数据,否则对象与创建它们的进程的PID之间存在关联。

所有这一切的一个例外是,如果您正在使用多处理模块。该模块中的某些类将提供PID以跟踪生成的进程。但是你的问题中没有任何内容表明你正在使用多处理(此时),所以我已经排除了对它的讨论。