code: def __str__(self):
      n = "%d:%s" % (self.gid, self.node_name)
      if self.node_type == GBDTNode.NODE_TYPE_INDICATOR:
          n += "="
      elif self.node_type == GBDTNode.NODE_TYPE_INT:
          n += "<"
      if self.node_type == GBDTNode.NODE_TYPE_INT:
          n += "%f" % self.value
      else:
          n += "%s" % self.value
      left = "_"
      if self.left is not None:
          if isinstance(self.left, GBDTNode):
              left = "%d" % self.left.gid
          else:
              left = self.left
      right = "_"
      if self.right is not None:
          if isinstance(self.right, GBDTNode):
              right = "%d" % self.right.gid
          else:
              right = self.right
      n += ",%s,%s" % (left, right)
      return n
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import turicreate
  import unittest
  import json
  import random
  import numpy
  import pytest
label_desc: Use image node_id 4 for calling the GBDTNode obj's underlying member method code with example usage: obj.__str__() and returns: n