Hi there, I am porting a Python library to C++ - and re-exposing back to Python with boost (suffice to say the Python API is fixed). I am having problems emulating class variables from boost as C++ static data members using inheritance. Here's an example: using namespace boost::python; using namespace std; struct A { static string value; }; struct B : public A { static string value; }; string A::value("A"); string B::value("B"); BOOST_PYTHON_MODULE(test) { class_<A>("A") .def_readonly("value", &A::value); class_<B>("B") .def_readonly("value", &B::value); } If I don't specify inheritance using bases<>, then this works. But I need inheritance, so I write: BOOST_PYTHON_MODULE(test) { class_<A>("A") .def_readonly("value", &A::value); class_("B"); } But now in Python, I only have access to A: >>> from test import A, B >>> A.value 'A' >>> B.value 'A' If try and overload B::value, I get an error: BOOST_PYTHON_MODULE(test) { class_<A>("A") .def_readonly("value", &A::value); class_("B") .def_readonly("value", &B::value); } >>> from test import A, B Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: can't set attribute I've also tried switching .def_readwrite, but now the error is: >>> from test import A, B Traceback (most recent call last): File "<stdin>", line 1, in <module> Boost.Python.ArgumentError: Python argument types in None.None(Boost.Python.StaticProperty) did not match C++ signature: None(std::string) So, to summarise, any idea how to provide polymorphic Python class variables in boost::python? Thanks in advance for your help.