code: def append(self, value, key=''):
          
          if isinstance(value, type('')) or isinstance(value, type(u'')):
              value = ListItem(value)
  
          keys = super(ListView, self).append(value, key=key)
          if type(value) in (list, tuple, dict):
              for k in keys:
                  if not self.EVENT_ONCLICK in self.children[k].attributes:
                      self.children[k].onclick.connect(self.onselection)
                  self.children[k].attributes['selected'] = False
          else:
              # if an event listener is already set for the added item, it will not generate a selection event
              if not self.EVENT_ONCLICK in value.attributes:
                  value.onclick.connect(self.onselection)
              value.attributes['selected'] = False
          return keys
docs: Appends child items to the ListView. The items are accessible by list.children[key].
  
          Args:
              value (ListItem, or iterable of ListItems): The child to be appended. In case of a dictionary,
                  each item's key is used as 'key' param for the single append.
              key (str): The unique string identifier for the child. Ignored in case of iterable 'value'
                  param.