      def test_redundant_source(self):
          class ExampleSerializer(serializers.Serializer):
              example_field = serializers.CharField(source='example_field')
          with pytest.raises(AssertionError) as exc_info:
              ExampleSerializer()
          assert str(exc_info.value) == (
              "It is redundant to specify `source='example_field'` on field "
              "'CharField' in serializer 'ExampleSerializer', because it is the "
              "same as the field name. Remove the `source` keyword argument."
          )
 
</s> remove             ExampleSerializer()
 </s> add             ExampleSerializer().fields </s> remove             TestSerializer()
 </s> add             TestSerializer().fields </s> remove             TestSerializer()
 </s> add             TestSerializer().fields </s> remove     def __init__(self, *args, **kwargs):
        super(Serializer, self).__init__(*args, **kwargs)

 </s> add     @property
    def fields(self):
        if not hasattr(self, '_fields'):
            self._fields = BindingDict(self)
            for key, value in self.get_fields().items():
                self._fields[key] = value
        return self._fields

    def get_fields(self): </s> remove         self.fields = BindingDict(self)
        for key, value in self._get_base_fields().items():
            self.fields[key] = value

        self.validators = getattr(getattr(self, 'Meta', None), 'validators', [])

    def _get_base_fields(self):
 </s> add 
            ExampleSerializer().fields
      def test_redundant_source(self):
          class ExampleSerializer(serializers.Serializer):
              example_field = serializers.CharField(source='example_field')
          with pytest.raises(AssertionError) as exc_info:
            ExampleSerializer().fields
          assert str(exc_info.value) == (
              "It is redundant to specify `source='example_field'` on field "
              "'CharField' in serializer 'ExampleSerializer', because it is the "
              "same as the field name. Remove the `source` keyword argument."
          )
keep keep keep keep replace keep keep keep keep keep
 Lazy loading of fields and validators. Closes #1963. 
tests/test_fields.py