Creating instances of untrusted new-style classes
greg
greg at cosc.canterbury.ac.nz
Fri May 26 04:33:03 EDT 2006
Michael Spencer wrote:
> >>> class A(object):
> ...
> >>> b = object.__new__(A)
Note that you'll need to be a bit cleverer if the
class might be derived from some other built-in
type:
>>> class A(list):
... pass
...
>>> b = object.__new__(A)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: object.__new__(A) is not safe, use list.__new__()
>>> b = list.__new__(A)
>>> b
[]
I'm not sure what is the easiest way to figure out
what base class to use, though. One way would be
to work your way backwards along the __mro__ until
one of them succeeds, but there's probably a more
direct way.
--
Greg
More information about the Python-list
mailing list