[C++-sig] Static, again...
Scott A. Smith
ssmith at magnet.fsu.edu
Thu Dec 5 04:16:16 CET 2002
David wrote:
> A static member function is just a regular function; you can add it at
> module scope:
>
> BOOST_PYTHON_MODULE_INIT(numTest)
> {
> def("getDims", &Num::getDims);
> ...
> }
Yep, this compiles just fine, but that is not the problem.
Unfortunately, I cannot call it from Python without errors.
Here is what happens when I added the code to the hello example
(Cygwin/GCC BPV2):
$ python
Python 2.2.2 (#1, Nov 15 2002, 07:49:04)
[GCC 2.95.3-5 (cygwin special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from hello import *
>>> X = Num()
>>> print X.dims()
5
>>> print X.getDims()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: bad argument type for built-in operation
>>> print Num().getDims()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: bad argument type for built-in operation
>>> print Num.getDims()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: unbound method Boost.Python.function object must
be called with Num instance as first argument (got nothing instead)
As you can see, the non-static method Num.dims() is fine, but
none of my attempts works for the static method. I think the
last invocation is supposed to work.
In BP V1 I could use Num.getDims(), but nothing works now?
Thanks, Scott
More information about the Cplusplus-sig
mailing list