如果我有这样的代码:
def handler(self):
self.run(self.connect)
def connect(self, param):
#do stuff...
def run(self, connector):
self.runner = connector
当我调用 self.run(self.connect) 时首先评估什么?
运行连接中的东西已经完成了吗?或与 self.connect 连接尚未评估?
如果我有这样的代码:
def handler(self):
self.run(self.connect)
def connect(self, param):
#do stuff...
def run(self, connector):
self.runner = connector
当我调用 self.run(self.connect) 时首先评估什么?
运行连接中的东西已经完成了吗?或与 self.connect 连接尚未评估?
将函数作为参数传递不会调用它:
In [105]: def f1(f):
.....: print 'hi'
.....: return f
.....:
In [106]: def f2():
.....: print 'hello'
.....:
In [107]: f1(f2)
hi
Out[107]: <function __main__.f2>
当然,如果你将一个函数调用传递给另一个函数,你传递的是返回值:
In [108]: f1(f2())
hello
hi
注意它们被调用的顺序: f2
首先被调用,它的返回值被传递给f1
.
您问题中的代码实际上connect()
都没有调用 ,因此永远不会调用该函数。所做self.run(self.connect)
的只是self.runner
使self.connect
.