[Python-3000] Metaclasses in Py3K (original) (raw)
Talin talin at acm.org
Fri Dec 8 19:23:33 CET 2006
- Previous message: [Python-3000] Metaclasses in Py3K
- Next message: [Python-3000] Metaclasses in Py3K
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido van Rossum wrote:
I've been thinking about this too, and I think it's reasonable to let the metaclass provide the dict to be used as locals. This is easier when the metaclass is given in the class header, e.g. by way of a base class, or through the default metaclass. Although the default default metaclass could of course have a hook to pass things on to another metaclass specified using a metaclass assignment, I'd rather innovate a bit more and add keyword arguments to the class header, e.g.
class C(B1, B2, metaclass=Foo): ... How can we design this feature without yet another gigantic contentious thread? I'm losing my appetite for those. I wonder if the right thing wouldn't be if you could do some serious research into the best possible semantics, syntax and implementation, and then post a fully-formed proposal (not quite a PEP). There is of course always the danger that you might go off into the deep end with that, so I'll leave it up to your judgement to decide when to post again. (Also, I'm still quite restricted in my internet access, at least until Monday.)
Although, I'm not sure a discussion is needed - I think your syntax is fine, better than what we have now, and I have no objection to it.
Here's a use case example:
# Define a C-struct rectangle
class Rect(metaclass=ctypes.struct):
x = ctypes.int32
y = ctypes.int32
width = ctypes.int32
height = ctypes.int32
The only topic for discussion that I see is what the metaclass interface should look like. (Please don't start a discussion of flaws in my example, it's just an example, don't take it too seriously.)
-- Talin
- Previous message: [Python-3000] Metaclasses in Py3K
- Next message: [Python-3000] Metaclasses in Py3K
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]