          """
          Instantiate forms at first property access.
          """
          # DoS protection is included in total_form_count()
          forms = [self._construct_form(i) for i in range(self.total_form_count())]
          return forms
  
      def _construct_form(self, i, **kwargs):
          """
          Instantiates and returns the i-th form instance in a formset.
 
</s> remove                  initial=None, error_class=ErrorList):
 </s> add                  initial=None, error_class=ErrorList, form_kwargs=None):
        forms = [self._construct_form(i, **self.get_form_kwargs(i))
                 for i in range(self.total_form_count())]
          """
          Instantiate forms at first property access.
          """
          # DoS protection is included in total_form_count()
        forms = [self._construct_form(i, **self.get_form_kwargs(i))
                 for i in range(self.total_form_count())]
          return forms
  
      def _construct_form(self, i, **kwargs):
          """
          Instantiates and returns the i-th form instance in a formset.
keep keep keep keep replace keep keep keep keep keep
 Fixed #18166 -- Added form_kwargs support to formsets.

By specifying form_kwargs when instantiating the formset, or overriding
the `get_form_kwargs` method on a formset class, you can pass extra
keyword arguments to the underlying `Form` instances.

Includes tests and documentation update. 
django/forms/formsets.py