Just to transform both comments to a self-contained answer: If __magicmethod__ is one of the well-known ones with associated operator (like __eq__ is, simply use the operator to access that. If not, simply "call it directly":
class Class1: def __eq__(self, other): print(f"== from {self} with {other} here!") def __magicmethod__(self, arg1, arg2): print(f"{self}({arg1}, {arg2})") class Class2(Class1): def eq(self, other): self == other def func1(self, x, y): self.__magicmethod__(x, y)
And then use like:
>> c2 = Class2() >>> c2.func1("x", "y") <__main__.Class2 object at 0x0000021B8694A1F0>(x, y) >>> c2 == "foo" == from <__main__.Class2 object at 0x0000021B8694A1F0> with foo here! >>> c2.eq("foo") # same as before, but through your own method
Nothing special really.
__eq__=>==c = Class1(); c.__magicmethod__(x, y)