繁体   English   中英

python类中的方法vs __init__

[英]method vs __init__ in a python class

我对这些方法的理解是:

  • __init__()就像构造函数。
  • 当此类的线程启动时,将调用run()

但是为什么我们需要运行方法? 我们可以实例化该类的对象并且所有初始化都保留在__init__()吗?

我看完这篇文章后 ,不能再做太多了,可以请您分享一些见解吗?

我认为Python线程模块提供了一个很好的例子。 如果您有一个始终运行相同功能的派生线程类,但是您可能想为其提供不同的输入,该怎么办。 您可能要实例化该类的许多对象,但要使用不同的输入-并且您不希望它开始运行。

也许您想将此实例化(但未启动)线程的列表传递给某种类型的管理器,该管理器可以启动和监视它们,而不管它们是哪种线程。

在这种情况下,最好将创建与运行分开。

__init__运行一次(在构造对象时),而run (在您给出的示例中)在后台(另一个过程)在只要对象存在的情况下运行。

__init__run之间的唯一区别是,第一个在主线程中运行,而第二个在另一个线程中运行。

但是为什么我们需要一个run方法? 我们可能实例化了class对象,并且所有初始化都保留在__init__中?

实际上, 所有初始化都已经在__init__中。 该示例中的run方法仅演示了后台线程,并非必需。

关于__init__()是构造函数,您是正确的。 在此示例中,目标是在线程中运行函数run()函数。 该示例提供了一种干净的方法。 您无法在__init__()内的run()函数内运行代码,因为这不会产生新线程。

考虑这种情况:

example = ThreadingExample()
do_something_important_that_doesnt_want_to_wait()

这适用于示例代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM