'Return a strong reference to the bound method
If the target cannot be retrieved, then will
return None, otherwise returns a bound instance
method for our object and function.
Note:
You may call this method any number of times,
as it does not invalidate the reference.'

def __call__(self):

    target = self.weakSelf()
    if (target is not None):
        function = self.weakFunc()
        if (function is not None):
            return function.__get__(target)
    return None
