好吧,你班上没人。在
如果函数是在类中声明的,则多工艺,则您的代码将工作,因为它将从进程名称空间中获取它。在class Process(object):
_popen = None
def __init__(...):
#stuff, but not involving _popen
但是,assert看起来像一个保护程序,我猜代码看起来有点像:
^{pr2}$
现在,在本例中,仅在实例上设置了_popen,而不是在Process类上设置。但是为了设置它,你需要执行它多工艺.初始化代码。在
如果您调用“Process.\uu init_Uu”,那么您的代码将非常好地工作,而您最初并没有这样做。在
不用Super,你可以用class My_Class(mp.Process):
def __init__(self):
#
mp.Process.__init__(self)
....do your stuff....
这是我以前做的,效果很好。但是如果你把继承改成我的类(mp.AnotherProcessType公司). 在这种情况下,有没有打电话给mp.Process.somefunc公司(),不仅需要手动调整初始化。在
super(My_Class,self).init()在本例中完成了相同的操作,但它是一种更健壮的方法来完成家务,以便调用mp工艺。初始化。在
有时您可以不调用Python类的祖先上的init。但这完全取决于是否有需要运行的初始化代码。在这种情况下,看起来有。在
如果你没有在你的课上有一个-uu init,你也不用担心,多工艺。但是,你自己的初始化基本上是说“我会自己初始化,非常感谢你”。如果需要,由您的代码显式地将一些工作委托回祖先类。在
另外,不用担心,我发现super(xxx,self)。somefunc()也有点晦涩难懂。但它是有效的。在