请考虑以下示例代码:
class Server:
def __init__(self):
self.start_listening()
def start_listening(self):
while True:
pass
我认为对象永远不会以这种方式创建。
当我创建一个新的Server对象时,我希望在构造函数执行完毕并且已经创建了对象之后调用start_listening()方法。
我不想手动调用该方法,如下所示:
s = Server()
s.start_listening()
我该怎么办?我应该在init()中创建一个新线程吗?
另外,假设代替start_listening()实际上永远不会终止,我们可以在构造函数之外使用一个非常慢的方法。
处理这种情况的正确方法是什么?
答案 0 :(得分:1)
您可以派生或汇总。
推导:
class AutoServer(Server):
def __init__(self):
Server.__init__(self)
self.start_listening()
集结:
class AutoServer(object):
def __init__(self):
self.server = Server()
self.server.start_listening()
答案 1 :(得分:0)
我认为你可以在一个函数中执行一个函数,并且不一定需要self.start_listening。请务必正确缩进。
所以:
Class Server:
def init(self):
def start_listening(self):
while true:
pass