Digamos que tengoanulación de método de Python, ¿importa la firma?
class Super():
def method1():
pass
class Sub(Super):
def method1(param1, param2, param3):
stuff
Es esto correcto? ¿Las llamadas a method1 siempre irán a la subclase? Mi plan es tener 2 subclases cada uno reemplazar método1 con diferentes parámetros
es la violación de la LSP en el hecho de que Sub.method1 toma 3 argumentos, mientras que Super.method1 toma ninguna haciéndolos de hecho diferentes interfaces? – Unode
@Unode: Correcto. Esto podría resolverse haciendo que todos los argumentos del método de la subclase tengan valores predeterminados, pero luego entones cuáles serían los predeterminados. –
Ya veo. Pero luego solo para aclarar. Si el método padre1 se definió como 'Super.method1 (param1 = None, param2 = None, param3 = None)' todavía violaría a LSP si en las subclases se define como 'Sub.method1 (param1, param2, param3)' right? Como los atributos son obligatorios en un caso pero no en el otro. Por lo tanto, a mi entender sin cambiar la interfaz de la subclase, la única forma de no violar LSP sería tener los parámetros sin valores predeterminados en el padre. ¿Estoy en lo correcto o sobreinterpretando el LSP? – Unode