Возможно, как остаток моих дней с сильно типизированным языком (Java), я часто нахожу себя в написании функций, а затем принудительно проверяет тип проверки. Например:
def orSearch(d, query):
assert (type(d) == dict)
assert (type(query) == list)
Должен ли я продолжать это делать? какие преимущества делать/не делать это?