Browse Source

hasattr(function, __call__) is not a valid callable check! use callable instead, which catches inittable objects

Zachary Pavlov 15 years ago
parent
commit
77318b23df
1 changed files with 2 additions and 2 deletions
  1. 2 2
      direct/src/showbase/PythonUtil.py

+ 2 - 2
direct/src/showbase/PythonUtil.py

@@ -92,7 +92,7 @@ def Functor(function, *args, **kArgs):
 
 
 class Functor:
 class Functor:
     def __init__(self, function, *args, **kargs):
     def __init__(self, function, *args, **kargs):
-        assert hasattr(function, '__call__'), "function should be a callable obj"
+        assert callable(function), "function should be a callable obj"
         self._function = function
         self._function = function
         self._args = args
         self._args = args
         self._kargs = kargs
         self._kargs = kargs
@@ -117,7 +117,7 @@ class Functor:
         _kargs.update(kargs)
         _kargs.update(kargs)
         return self._function(*(self._args + args), **_kargs)
         return self._function(*(self._args + args), **_kargs)
 
 
-    # this method is used in place of __call__ if we are recording creation stacks
+    # this methoxd is used in place of __call__ if we are recording creation stacks
     def _exceptionLoggedCreationStack__call__(self, *args, **kargs):
     def _exceptionLoggedCreationStack__call__(self, *args, **kargs):
         try:
         try:
             return self._do__call__(*args, **kargs)
             return self._do__call__(*args, **kargs)