[英]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.