def delayed_assattr(self, node):
try:<EOL><INDENT>frame = node.frame()<EOL>for inferred in node.expr.infer():<EOL><INDENT>if inferred is util.Uninferable:<EOL><INDENT>continue<EOL><DEDENT>try:<EOL><INDENT>if inferred.__class__ is bases.Instance:<EOL><INDENT>inferred = inferred._proxied<EOL>iattrs = inferred.instance_attrs<EOL>if not _can_assign_attr(inferred, node.attrname):<EOL><INDENT>continue<EOL><DEDENT><DEDENT>elif isinstance(inferred, bases.Instance):<EOL><INDENT>continue<EOL><DEDENT>elif inferred.is_function:<EOL><INDENT>iattrs = inferred.instance_attrs<EOL><DEDENT>else:<EOL><INDENT>iattrs = inferred.locals<EOL><DEDENT><DEDENT>except AttributeError:<EOL><INDENT>continue<EOL><DEDENT>values = iattrs.setdefault(node.attrname, [])<EOL>if node in values:<EOL><INDENT>continue<EOL><DEDENT>if (<EOL>frame.name == "<STR_LIT>"<EOL>and values<EOL>and values[<NUM_LIT:0>].frame().name != "<STR_LIT>"<EOL>):<EOL><INDENT>values.insert(<NUM_LIT:0>, node)<EOL><DEDENT>else:<EOL><INDENT>values.append(node)<EOL><DEDENT><DEDENT><DEDENT>except exceptions.InferenceError:<EOL><INDENT>pass<EOL><DEDENT>
Visit a AssAttr node

        This adds name to locals and handle members definition.