Browse Source

added Functor

Darren Ranalli 23 years ago
parent
commit
c7ba7ab8ad
1 changed files with 15 additions and 0 deletions
  1. 15 0
      direct/src/showbase/PythonUtil.py

+ 15 - 0
direct/src/showbase/PythonUtil.py

@@ -481,3 +481,18 @@ def printProfile(filename=PyUtilProfileDefaultFilename,
     for sort in sorts:
     for sort in sorts:
         s.sort_stats(sort)
         s.sort_stats(sort)
         s.print_stats(lines)
         s.print_stats(lines)
+
+class Functor:
+    def __init__(self, function, *args, **kargs):
+        assert callable(function), "function should be a callable obj"
+        self._function = function
+        self._args = args
+        self._kargs = kargs
+        
+    def __call__(self, *args, **kargs):
+        """call function"""
+        _args = list(self._args)
+        _args.extend(args)
+        _kargs = self._kargs.copy()
+        _kargs.update(kargs)
+        return apply(self._function,_args,_kargs)