No need to have ```translation``` as a parameter and pass it around. Instead, just have a class attribute named ```_translation``` for each class where it differs from the default, and reference that. :

```python
class One(object):

    _translation = {"some": "thing"}

    def a_method(self):
        return self._translation["some"]


class Two(One):

    _translation = {"some": "thing else"}

>>> print One().a_method()
"thing"

>>> print Two().a_method()
"thing else"