Reference Count Confusion

Chris Barker Chris.Barker at
Wed Jun 26 13:08:39 EDT 2002

Jeff Smith wrote:

> import Numeric
> import foo
> a = Numeric.zeros(1000000).astype('f')
> b = Numeric.ones(1000000).astype('f')

A little nit unrelated to your question:

use: a = Numeric.zeros(1000000,'f')

instead. The result is the same, but it creates the Float array
directly, rather than creating an integer array, and then making a float
array from that.

>   return Py_BuildValue("O", c);

You might want to try:

return Py_BuildValue("N", c);

I'm a little fuzzy on al this too, but that works for me in a similar
situation. From Extending and Embedding the Python Interpreter:

"N" (object) [PyObject *] 
      Same as "O", except it doesn't increment the reference count on
the object. Useful when the object is created by a call to an object
constructor in the argument list. 

Good luck,


Christopher Barker, Ph.D.
NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at

More information about the Python-list mailing list