If a class Child inherits from Parent, how to implement Child.some_method if Parent.some_method() returns Parent instance ?



Consider the following:

########################################
class Parent:
def some_method(self):
return Parent(...)
class Child:
def some_method(self):
...
return Parent.some_method(self)
########################################

Or Simply:

########################################
class Parent:
def some_method(self):
return Parent(...)
class Child:
pass
########################################

Child().some_method() returns a Parent instance.

We can rewrite Parent like this to avoid that

########################################
class Parent:
def some_method(self):
return self.__class__(...)
class Child:
def some_method(self):
...
return Parent.some_method(self)
########################################

But this style makes code full with ugly self.__class__

Any standard/pythonic way out there?

.



Relevant Pages