It's not about sending the wrong arguments. In Python a function may support a variety of types in a single argument. But instead of querying the type and switching based on that, you often want to try to call a method and if you get an exception (because that method does not exist), try to call a different method that gets you what you need.
The advantage to this over checking the type is that you are still use duck typing. If you check the type then you can only support a specific set of classes.