В функции аргументы передаются по ссылке, но их изменение внутри функции не всегда приводит к изменению переданного объекта. Если переданы экземпляры классов, списки, словари (mutable объекты), то изменение их состояния отразится на исходном объекте. Если же в функцию переданы числа, строки или кортежи (immutable объекты), то при попытке изменить их значение в теле функции будет создан новый объект того же типа, но уже локально, а переданный снаружи объект изменен не будет. В вашем случае dba, dbb и dbc будут равны пустой строке как и до вызова translatedb.