Have you tried using the keyword argument approach to handling default arguments? More precisely, something like this should work, I think:
def("override", func, (arg("x"), arg("y")=0, arg("z")=false))
(where func is the usual wrapper override function).