diff --git a/multipledispatch/dispatcher.py b/multipledispatch/dispatcher.py index 67b679c..b7d6adb 100644 --- a/multipledispatch/dispatcher.py +++ b/multipledispatch/dispatcher.py @@ -195,8 +195,14 @@ def reorder(self, on_ambiguity=ambiguity_warn): on_ambiguity(self, amb) return od + def arg_types(self, args): + """Determine of types of the arugments. + Could be overrided to better support metaclasses. + """ + return tuple([type(arg) for arg in args]) + def __call__(self, *args, **kwargs): - types = tuple([type(arg) for arg in args]) + types = self.arg_types(args) try: func = self._cache[types] except KeyError: