def get(self, key, default=None):
    '\n        Gets an attribute from this node, if that attribute exists.\n\n        Arguments:\n            key: Field name to return. May contain decimals to return a value\n                 from a child node.\n            default: Default value to return.\n\n        Returns: Field value if it exists. Default value if not.\n        '
    if (key is None):
        raise TypeError('Cannot match against None')
    obj = self
    for k in key.split('.'):
        if isinstance(obj, dict):
            obj = obj.get(k)
        else:
            obj = getattr(obj, k, None)
    return (obj or default)
Gets an attribute from this node, if that attribute exists.

Arguments:
    key: Field name to return. May contain decimals to return a value
         from a child node.
    default: Default value to return.

Returns: Field value if it exists. Default value if not.
def get(self, key, default=None):
    '\n        Gets an attribute from this node, if that attribute exists.\n\n        Arguments:\n            key: Field name to return. May contain decimals to return a value\n                 from a child node.\n            default: Default value to return.\n\n        Returns: Field value if it exists. Default value if not.\n        '
    if (key is None):
        raise TypeError('Cannot match against None')
    obj = self
    for k in key.split('.'):
        if isinstance(obj, dict):
            obj = obj.get(k)
        else:
            obj = getattr(obj, k, None)
    return (obj or default)