Ваши первые 2 варианта потребуют создания класса Person и класса Employer и использования __dict__
для чтения значений и setattr
для записи значений.Этот подход будет медленнее, но будет более гибким (вы можете добавить новые методы, проверку и т. Д.)
Самый простой способ - использовать только словари (вариант 3).Это не потребует никакой необходимости.Лично я также считаю, что он наиболее читаемый из 3.
Так что, если бы вы были на вашем месте, я бы использовал вариант 3. Это удобно и просто, и позже его легко расширить, если вы измените свойразум.Если бы мне пришлось выбирать между первыми двумя, я бы выбрал второе (мне не нравится чрезмерное использование геттеров и сеттеров).
PS Я бы держался подальше от person.get_employer()['name'] = 'Foo'
, независимо от того, что вы делаете.