В простых случаях функция возвращает новое значение.
В более сложных случаях вы можете передать объект или список и изменить его:
def foobar(alist):
alist[0] = 10
blist = [42]
foobar(blist)
print blist[0]
Edit:
Для упаковки ссылок на C ++ не существует никакого стандартного способа (базовые интерфейсы Python находятся на уровне C - не C ++) - поэтому это зависит от того, как реализован интерфейс Python - это могут быть массивы или возвращение нескольких значений. Я не уверен, как boost.python справляется с этим, но вы можете начать с него или, возможно, заглянуть в отладчик, чтобы увидеть, как обрабатывается параметр.