input: def evaluate(expression: str) -> int:
      """ Evaluates a postfix expression given as a string.
      >>> evaluate("2 3 + 4 5 * *")
      46
      >>> evaluate("5 3 4 * + 7 -")
      10
      """
      # split expression into list
      expression = expression.split()
  
      # stack to store integer values.
      stack = []
  
      # do for every element of expression.
      for element in expression:
          # If element is an operand push
          # into stack it's a number only
          if element.isdigit():
              stack.append(int(element))
  
          # if element is an operator,
          # pop two elements from stack
          # perform respective operations
          else:
              val1 = stack.pop()
              val2 = stack.pop()
              if element == '+':
                  stack.append(val2 + val1)
              elif element == '-':
                  stack.append(val2 - val1)
              elif element == '*':
                  stack.append(val2 * val1)
              elif element == '/':
                  stack.append(val2 // val1)
  
      # return the value
      return stack[0]
  
  # Driver Code
  expression = "2 3 + 4 5 * *"
  print(evaluate(expression))
  
  Output: 46
output:     
      # return the value
      return stack[0]
  