ALL-OVER0002 · overriding_method_renames_a_parameter
Count the positions an overriding method binds under a name the base never used.
This is a deterministic rule for all languages. Read its implementation.
Definition
Section titled “Definition”Read every member a base declares beside the declaration the subclass writes for it, and
report each position that still lines up while the name on it changed. Every ordinary
parameter of a Python method is also a keyword, so a rename silently deletes part of the
interface. A caller written against the base passes path= and gets a type error naming an
argument it never used, and the reader who has to fix it starts at the call rather than at the
class that moved the name.
A reordering is the same defect twice over and is counted that way. Swapping two parameters renames both positions, every keyword call keeps working, every positional call keeps running, and each one now binds the wrong value to the right name. Documentation is the other cost, because two names for one thing means two mental models of one thing.
Continue with evidence and references, or open the examples.