code: def make_dynamic_class(typename, field_names):
      if isinstance(field_names, basestring):
          field_names = field_names.replace(",", " ").split()
      field_names = map(str, field_names)
      safe_fields_names = map(_encode_property_name, field_names)
      attr = dict((safe_name, _property(name)) for name, safe_name in zip(field_names, safe_fields_names))
      attr['__doc__'] = typename
      attr['__identifier__'] = "dolphin"
      attr['__init__'] = _dynamic__init
      attr['__getitem__'] = lambda self, key: self.__dict__.get(key)
      attr['__setitem__'] = _dynamic__setitem
      attr['__iter__'] = lambda self: iter(self.__dict__)
      attr['__repr__'] = lambda self: "{%s}" % (', '.join([
                                                              "%s=%r" % (key, self[key]) for key in
                                                              sorted(self.__dict__.keys())
                                                              ]))
      return type(typename, (object,), attr)