Problem: I have to check that the a returned value is a Python dictionary.
Q1. Which of these options is the proper way to do this?
type(x) == dict
type(x) == type(dict)
isinstance(d, dict)
Then there are the other variants using is operator instead of ==.
Q2. Many people say that checking the type of an object is generally a bad practice, but regarding to my initial problem, do I have any other choice?
Don’t waste time on type checking.
It’s error-prone because it’s based on assumptions.
Yes do this.
In most cases, this amounts to “do nothing”.
Just write the code. If “somehow” a malicious sociopath uses the wrong type, it will just crash like it’s supposed to.