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

Reply via email to