title: Is passing too many arguments to the constructor considered an anti-pattern?
body: <p>I am considering using the factory_boy library for API testing. An example from the documentation is:</p>
  
  <pre><code>class UserFactory(factory.Factory):
      class Meta:
          model = base.User
  
      first_name = "John"
      last_name = "Doe"
  </code></pre>
  
  <p>For this to work, we need <code>first_name</code>, <code>last_name</code>, etc to be passed as parameters to the <code>__init__()</code> method of the <code>base.User() class</code>. However, if you have many parameters this leads to something like:</p>
  
  <pre><code>class User(object):
  
      GENDER_MALE = 'mr'
      GENDER_FEMALE = 'ms'
  
      def __init__(self, title=None, first_name=None, last_name=None, is_guest=None,
               company_name=None, mobile=None, landline=None, email=None, password=None,
               fax=None, wants_sms_notification=None, wants_email_notification=None,
               wants_newsletter=None, street_address=None):
  
          self. title = title
          self.first_name = first_name
          self.last_name = last_name
          self.company_name = company_name
          self.mobile = mobile
          self.landline = landline
          self.email = email
          self.password = password
          self.fax = fax
          self.is_guest = is_guest
          self.wants_sms_notification = wants_sms_notification
          self.wants_email_notification = wants_email_notification
          self.wants_newsletter = wants_newsletter
          self.company_name = company_name
          self.street_address = street_address
  </code></pre>
  
  <p>Now the question is, is this construction considered anti-pattern, and if yes, what alternatives do I have?</p>
  
  <p>Thanks</p>