code: def record(self, *recordList, **recordDict):
          
          # Balance if already not balanced
          if self.autoBalance and self.recNum > self.shpNum:
              self.balance()
              
          record = []
          fieldCount = len(self.fields)
          # Compensate for deletion flag
          if self.fields[0][0].startswith("Deletion"): fieldCount -= 1
          if recordList:
              record = [recordList[i] for i in range(fieldCount)]
          elif recordDict:
              for field in self.fields:
                  if field[0] in recordDict:
                      val = recordDict[field[0]]
                      if val is None:
                          record.append("")
                      else:
                          record.append(val)
          else:
              # Blank fields for empty record
              record = ["" for i in range(fieldCount)]
          self.__dbfRecord(record)
docs: Creates a dbf attribute record. You can submit either a sequence of
          field values or keyword arguments of field names and values. Before
          adding records you must add fields for the record values using the
          fields() method. If the record values exceed the number of fields the
          extra ones won't be added. In the case of using keyword arguments to specify
          field/value pairs only fields matching the already registered fields
          will be added.