[C++-sig] Static, again...
Scott A. Smith
ssmith at magnet.fsu.edu
Thu Dec 5 13:53:27 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);
> >> ...
> >>}
Nicodemus wrote:
> You are exposing a function, not a member function, so you should call
> it like this from python:
>
> >>> print getDims()
>
> If that bothers you, you can:
>
> 1) Export it as "Num_getDims" instead of "getDims". It might be
> acceptable.
>
>
> 2) Create a static function on the python side, like this:
>
> >>> from hello import *
> >>> Num.getDims = staticmethod(getDims)
> >>> print Num.getDims()
>
>
> 3) Wait for David to implement the new facility to export static
> functions, which he said he would do as soon as he could, IIRC.
OK, I see now that it is the difference between adding
.def("getDims", &Num::getDims)
within the class Num and making it a regular function using
def("getDims", &Num::getDims);
I have to read David's responses more carefully. The solution
isn't optimal, but I can live with it until it is part of BP.
I am many many steps behind the cutting edge in BP anyway.
Thanks Dave & Nicodemus,
Scott
More information about the Cplusplus-sig
mailing list