[Python-Dev] Why are so many built-in types inheritable? (original) (raw)
Fabiano Sidler fabianosidler at gmail.com
Mon Mar 13 21:29:06 CET 2006
- Previous message: [Python-Dev] Making builtins more efficient
- Next message: [Python-Dev] Why are so many built-in types inheritable?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi folks!
Let me explain the above question: For debugging purpose I tried this:
--- snip --- def foo(): pass function = type(foo)
class PrintingFunction(function): def init(self, func): self.func = func def call(self, *args, **kwargs): print args, kwargs return function.call(self, args, kwargs)
class DebugMeta(type): def new(self, name, bases, dict): for name in dict: if type(dict[name]) is function: dict[name] = PrintingFunction(dict[name])
--- snap ---
Now I tought I were able to let all methods of classes with DebugMeta as metaclass print out their arguments. But I got the following sad error:
TypeError: Error when calling the metaclass bases type 'function' is not an acceptable base type
That's a pity, isn't it? What could I do to get the above code to work? (No, I don't want to reimplement <type 'function'> without this unpleasant behaviour in Python.
Greetings, F. Sidler
- Previous message: [Python-Dev] Making builtins more efficient
- Next message: [Python-Dev] Why are so many built-in types inheritable?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]