rope icon indicating copy to clipboard operation
rope copied to clipboard

Inline method refactoring applied to rich comparison methods

Open jonh-copin opened this issue 1 year ago • 0 comments

Inline method refactoring allows for rich comparison methods. It would be nice if Rope sent an alert to the user to avoid applying the transformation to rich comparison methods.

Steps to reproduce the behavior:

  1. Code before refactoring:
class GFG:
    def __init__(self, Marks):
        self.Marks = Marks

    def _cmpkey(self):
        return self.Marks

    def _compare(self, other, method):
        try:
            return method(self._cmpkey(), other._cmpkey())
        except (AttributeError, TypeError):
            return NotImplemented

    def __lt__(self, other):
        return self._compare(other, lambda s, o: s < o)

student1_marks = GFG(90)
student2_marks = GFG(88)

print(student1_marks < student2_marks)
print(student2_marks < student1_marks)

  1. Apply the Inline Method refactoring to 'GFG.__lt__'

jonh-copin avatar Feb 26 '24 21:02 jonh-copin