es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué falla el principio de ‘cortocircuito lógico’ en python?

En comparación con el código a continuación, ¿falla la regla de “cortocircuito lógico” de Python? Si es así, ¿por qué no está funcionando?

print([1].append(3) or 2)

El resultado es ‘2’, el principio de “cortocircuito lógico” parece haber fallado.

print([1,3] or 2)

El resultado es ‘[1,3]’, el principio de “cortocircuito lógico” es válido.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La regla de “cortocircuito lógico” en Python es un principio en el cual el segundo operando en una expresión lógica solo se evalúa si el primer operando no proporciona suficiente información para determinar el resultado. En el caso del operador or, si el primer operando es True, entonces el segundo operando no se evalúa ya que el resultado ya está determinado.

    En el código print([1].append(3) or 2), el método append() modifica la lista [1] en su lugar y devuelve None. Por lo tanto, la expresión ([1].append(3) or 2) se evalúa como None or 2, lo cual es 2. En este caso, el operador or funciona como se espera, ya que el primer operando None se considera como False.

    En el código print([1,3] or 2), el primer operando [1,3] es una lista no vacía que se considera como True en un contexto booleano. Por lo tanto, el segundo operando 2 no se evalúa en absoluto, y el resultado de la expresión es [1,3]. Por lo tanto, el principio de “cortocircuito lógico” es válido en este ejemplo.

    Por lo tanto, no hay falla en la regla de “cortocircuito lógico” en ninguno de los ejemplos de código.

Comments are closed.