История изменений
Исправление den73, (текущая версия) :
def f(a:int, b:str):
if a == b:
делайЧтоТо
В нормальном языке уже на этапе компиляции компилятор может заключить, что «делайЧтоТо» - недостижимый код. В Питоне же это счастье происходит на этапе выполнения, ну или может линтер будет умным и заметит это. А в реальной программе на Питоне будет:
def f(a,b):
if a == b:
делайЧтоТо
Если a и b - это 2 и «2», то делайЧтоТо не вызовется. И если программист не задумался о типах a и b, то он может очень долго не разобраться, в чём проблема. Так что отсутствие неявного приведения, как в JS, не спасает.
Исходная версия den73, :
def f(a:int, b:str):
if a == b:
делайЧтоТо
В нормальном языке уже на этапе компиляции компилятор может заключить, что «делайЧтоТо» - недостижимый код. В Питоне же это счастье происходит на этапе выполнения. А в реальной программе на Питоне будет:
def f(a,b):
if a == b:
делайЧтоТо
Если a и b - это 2 и «2», то делайЧтоТо не вызовется. И если программист не задумался о типах a и b, то он может очень долго не разобраться, в чём проблема. Так что отсутствие неявного приведения, как в JS, не спасает.