[oops, I forgot to cc the list] On Thu, Oct 30, 2008 at 7:43 PM, Christian Heimes <[EMAIL PROTECTED]> wrote: > Alexandre Vassalotti wrote: >> >> And that is exactly the reason why, the _pickle module doesn't use >> __new__ for initialization. Doing any kind of argument parsing in >> __new__ prevents subclasses from customizing the arguments for their >> __init__. >> >> Although, I agree that __new__ should be used, whenever it is >> possible, to initialize struct members. > > You are missunderstanding me. I want everybody to set the struct members to > *A* sensible default value, not *THE* value. Argument parsing can still > happen in tp_init. tp_new should (or must?) set all struct members to > sensible defaults like NULL for pointers, -1 or 0 for numbers etc. > > Python uses malloc to allocate memory. Unless you are using debug builds the > memory block is not initialized. In both cases the block of memory isn't > zeroed. You all know the problems caused by uninitialized memory. >
But what if PyType_GenericAlloc is used for tp_alloc? As far as I know, the memory block allocated with PyType_GenericAlloc is zeroed. -- Alexandre _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com