>>22
So can Java. But this means you have to define a class or interface with placeholder methods and properties beforehand, and that this class must be known to all three parts - the Penis, the Vagina, and the guy calling fuck. Python doesn't require this; the guy who writes Penis and the guy who calls fuck may not know each other besides the fact they can fuck, and may not know Vagina at all, because Vagina could be developed somewhere else, some other time, and it could just happen to be useful to replace a Penis in a future version of the fucker guy's program. Interfaces, called protocols in Python jargon, are just documentation of guidelines in order to make objects that feel alike.