Aquí hay parte del código. Necesito entender lo que hace este código:
if instruction == "JOINT" or instruction == "ROOT": parent = joint_stack[-1] if instruction == "JOINT" else None joint = BvhJoint(words[1], parent) self.joints[joint.name] = jointCómo entender esta línea especial ->
parent = joint_stack[-1] if instruction == "JOINT" else None¿Este código es igual al código JS?
if (instruction == "JOINT") { parent = joint_stack[-1]; } else { }?
El código JS equivalente sería:
if (instruction == "JOINT") { parent = joint_stack[-1]; } else { parent = null; }o más idiomáticamente:
parent = instruction == "JOINT" ? joint_stack[-1] : null;Esta expresión ternaria en Python:
joint_stack[-1] if instruction == "JOINT" else Nonees lo mismo que la expresión ternaria de JS:
instruction == "JOINT" ? joint_stack[-1] : null parent = joint_stack[-1] if instruction == "JOINT" else None Esto verificará que la "instrucción" sea igual a "JOINT" si es así, el último valor de la matriz joint_stack se asignará al padre, de lo contrario, None
El equivalente de JS sería
const parent = (instruction === "JOINT")?joint_stack[-1]:null;El acceso directo a la expresión condicional se agregó a Python 2.5. Consulte ¿Python tiene un operador condicional ternario?