if I have some code like this:
def handler(self):
self.run(self.connect)
def connect(self, param):
#do stuff...
def run(self, connector):
self.runner
Passing a function as a parameter does not call it:
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>
of course, if you pass a function call to another function, what you're passing is the return value:
In [108]: f1(f2())
hello
hi
Note the order in which they are called: f2
is called first, and its return value is passed to f1
.
None of the code in your question actually calls connect()
, so the function is never invoked. All that self.run(self.connect)
does is make self.runner
a synonym for self.connect
.