Ça fait des lustres que les compilateurs lèvent un warning sur ce type d'erreurs sans aller vers la nécessité d'un "décodeur maître Yoda" visuel!
L'équivalent en Python sont les "linters" comme pylint, pyflakes, pycodestyle, etc. Il existe aussi des analyseurs de code plus orientés sécurité comme bandit, PyT, etc.
Python se met aussi à lever des warnings à la compilation (et pas juste à l'exécution) :
>>> def func(arg):
... return arg is "a"
...
<stdin>:2: SyntaxWarning: "is" with a literal. Did you mean "=="?
>>> def func():
... return "%s %s" ("hello", "world")
...
<stdin>:2: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
[^] # Re: Yoda ?
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Python 3.8 : opérateur d’assignation, REPL async, Pickle v5 et plus. Évalué à 7.
L'équivalent en Python sont les "linters" comme pylint, pyflakes, pycodestyle, etc. Il existe aussi des analyseurs de code plus orientés sécurité comme bandit, PyT, etc.
Python se met aussi à lever des warnings à la compilation (et pas juste à l'exécution) :