class_docstr: A dictionary that provides attribute-style access.
  
  >>> b = Munch()
  >>> b.hello = 'world'
  >>> b.hello
  'world'
  >>> b['hello'] += "!"
  >>> b.hello
  'world!'
  >>> b.foo = Munch(lol=True)
  >>> b.foo.lol
  True
  >>> b.foo is b['foo']
  True
  
  A Munch is a subclass of dict; it supports all the methods a dict does...
  
  >>> sorted(b.keys())
  ['foo', 'hello']
  
  Including update()...
  
  >>> b.update({ 'ponies': 'are pretty!' }, hello=42)
  >>> print (repr(b))
  Munch({'ponies': 'are pretty!', 'foo': Munch({'lol': True}), 'hello': 42})
  
  As well as iteration...
  
  >>> sorted([ (k,b[k]) for k in b ])
  [('foo', Munch({'lol': True})), ('hello', 42), ('ponies', 'are pretty!')]
  
  And "splats".
  
  >>> "The {knights} who say {ni}!".format(**Munch(knights='lolcats', ni='can haz'))
  'The lolcats who say can haz!'
  
  See unmunchify/Munch.toDict, munchify/Munch.fromDict for notes about conversion.
docstr: Deletes attribute k if it exists, otherwise deletes key k. A KeyError
  raised by deleting the key--such as when the key is missing--will
  propagate as an AttributeError instead.
  
  >>> b = Munch(lol=42)
  >>> del b.lol
  >>> b.lol
  Traceback (most recent call last):
      ...
  AttributeError: lol
docstr_tok: ["Deletes","attribute","k","if","it","exists",",","otherwise","deletes","key","k.","A","KeyError","raised","by","deleting","the","key","--","such","as","when","the","key","is","missing","--","will","propagate","as","an","AttributeError","instead",".",">",">",">","b","=","Munch","(","lol=42",")",">",">",">","del","b.lol",">",">",">","b.lol","Traceback","(","most","recent","call","last",")",":","...","AttributeError",":","lol"]
code: def __delattr__(self, k):
      """Deletes attribute k if it exists, otherwise deletes key k. A KeyError
      raised by deleting the key--such as when the key is missing--will
      propagate as an AttributeError instead.
  
      >>> b = Munch(lol=42)
      >>> del b.lol
      >>> b.lol
      Traceback (most recent call last):
          ...
      AttributeError: lol
      """
      try:
          # Throws exception if not in prototype chain
          object.__getattribute__(self, k)
      except AttributeError:
          try:
              del self[k]
          except KeyError:
              raise AttributeError(k)
      else:
          object.__delattr__(self, k)
  
imports: from collections.abc import Mapping
label_desc: Use image node_id 4 for calling the Munch obj's underlying member method code with example usage: obj.__delattr__(k) without return types