def _has_different_parameters_default_value(original, overridden):
if original.args is None or overridden.args is None:<EOL><INDENT>return False<EOL><DEDENT>all_args = chain(original.args, original.kwonlyargs)<EOL>original_param_names = [param.name for param in all_args]<EOL>default_missing = object()<EOL>for param_name in original_param_names:<EOL><INDENT>try:<EOL><INDENT>original_default = original.default_value(param_name)<EOL><DEDENT>except astroid.exceptions.NoDefault:<EOL><INDENT>original_default = default_missing<EOL><DEDENT>try:<EOL><INDENT>overridden_default = overridden.default_value(param_name)<EOL><DEDENT>except astroid.exceptions.NoDefault:<EOL><INDENT>overridden_default = default_missing<EOL><DEDENT>default_list = [<EOL>arg == default_missing for arg in (original_default, overridden_default)<EOL>]<EOL>if any(default_list) and not all(default_list):<EOL><INDENT>return True<EOL><DEDENT>astroid_type_compared_attr = {<EOL>astroid.Const: "<STR_LIT:value>",<EOL>astroid.ClassDef: "<STR_LIT:name>",<EOL>astroid.Tuple: "<STR_LIT>",<EOL>astroid.List: "<STR_LIT>",<EOL>}<EOL>handled_types = tuple(<EOL>astroid_type for astroid_type in astroid_type_compared_attr<EOL>)<EOL>original_type = _get_node_type(original_default, handled_types)<EOL>if original_type:<EOL><INDENT>if not isinstance(overridden_default, original_type):<EOL><INDENT>return True<EOL><DEDENT>if not _check_arg_equality(<EOL>original_default,<EOL>overridden_default,<EOL>astroid_type_compared_attr[original_type],<EOL>):<EOL><INDENT>return True<EOL><DEDENT><DEDENT><DEDENT>return False<EOL>
Check if original and overridden methods arguments have different default values

Return True if one of the overridden arguments has a default
value different from the default value of the original argument
If one of the method doesn't have argument (.args is None)
return False