Hay un gran grado de ambigüedad con tales operaciones. Supongamos que el caso en su lugar:
a = '4'
b = 1
print(a + b)
No está claro si a
debe ser obligado a un número entero (que resulta en 5
), o si b
debe ser obligado a una cadena (que resulta en '41'
). Como las reglas de malabarismo de tipo son transitorias, pasar una cadena numérica a una función que espera números podría ocasionarle problemas, especialmente dado que casi todos los operadores aritméticos también han sobrecargado operaciones para cadenas.
Por ejemplo, en Javascript, para asegurarse de que se ocupa de enteros y no de cadenas, una práctica común es multiplicar una variable por uno; en Python, el operador de multiplicación repite cadenas, por lo que '41' * 1
es una operación nula. Probablemente sea mejor pedirle al desarrollador que aclare.
"Frente a la ambigüedad, rechaza la tentación de adivinar." (Alguien tuvo que decirlo). – DSM
Sí, ¿y por qué no intenta convertir 'abc' a int y agregar a 1? Apples + Bananas te da qué? – JBernardo
@JBernardo ensalada de frutas? –