If you're tying to develop interfaces in Python, I would argue you're using the language from the wrong standpoint.
Every language has a design goal. Python doesn't care about interface contracts. The "one correct way" is the contract.
Every language has a design goal. Python doesn't care about interface contracts. The "one correct way" is the contract.
It's almost an entirely distinct problem domain. Besides, what would a contract be in a dynamically typed language?
I don't think these features are bad, but they're not appropriate everywhere.
Yeah don't worry, I'm not gonna use Python.
> Besides, what would a contract be in a dynamically typed language?
Being dynamic has nothing to do with this. See: Clojure, PHP, etc. They have contracts.
Of course things might not be appropriate everywhere. But with Python/Ruby you don't have a choice, they just lack these features.