Here is part of code. I need to understand what this code do :
if instruction == "JOINT" or instruction == "ROOT":
parent = joint_stack[-1] if instruction == "JOINT" else None
joint = BvhJoint(words[1], parent)
self.joints[joint.name] = joint
How to understand this line special ->
parent = joint_stack[-1] if instruction == "JOINT" else None
Is this code equal with JS code:
if (instruction == "JOINT") {
parent = joint_stack[-1];
} else {
}
?
CodePudding user response:
The equivalent JS code would be:
if (instruction == "JOINT") {
parent = joint_stack[-1];
} else {
parent = null;
}
or more idiomatically:
parent = instruction == "JOINT" ? joint_stack[-1] : null;
This ternary expression in Python:
joint_stack[-1] if instruction == "JOINT" else None
is the same as the JS ternary expression:
instruction == "JOINT" ? joint_stack[-1] : null
CodePudding user response:
parent = joint_stack[-1] if instruction == "JOINT" else None
This will check the “instruction” is equal to “JOINT” if yes, last value of joint_stack array will be assigned to the parent, otherwise None
CodePudding user response:
The JS equivalent would be
const parent = (instruction === "JOINT")?joint_stack[-1]:null;
The shortcut to conditional expression was added to Python 2.5. See Does Python have a ternary conditional operator?