Stop using self.__dict__.update(locals()) in order to prevent custom property setters from being called