When you call a new-style class, the __new__ method is called with the user-supplied arguments, followed by the __init__ method with the same arguments.
I would like to modify the arguments after the __new__ method is called but before the __init__ method, somewhat like this: >>> class Spam(object): ... def __new__(cls, *args): ... print "__new__", args ... x = object.__new__(cls) ... args = ['spam spam spam'] ... return x ... def __init__(self, *args): ... print "__init__", args # hope to get 'spam spam spam' ... return None but naturally it doesn't work: >>> s = Spam('spam and eggs', 'tomato', 'beans are off') __new__ ('spam and eggs', 'tomato', 'beans are off') __init__ ('spam and eggs', 'tomato', 'beans are off') Is there any way to do this, or am I all outta luck? -- Steven -- http://mail.python.org/mailman/listinfo/python-list