def __init__(self, initializer=None, age=None):
    super(RDFValueArray, self).__init__(age=age)

    if self.__class__ == initializer.__class__:
      self.content = initializer.Copy().content
      self.age = initializer.age

    # Initialize from a serialized protobuf.
    elif isinstance(initializer, str):
      self.ParseFromString(initializer)

    else:
      try:
        for item in initializer:
          self.Append(item)
      except __HOLE__:
        if initializer is not None:
          raise rdfvalue.InitializeError(
              "%s can not be initialized from %s" % (
                  self.__class__.__name__, type(initializer)))
dataset/ETHPy150Open google/grr/grr/lib/rdfvalues/protodict.py/RDFValueArray.__init__