class_docstr: Test st.help.
class_docstr_tok: ["Test","st.help","."]
code: def test_instance_members(self):
      class MyClass(object):
          a = 1
          b = 2
  
          def __init__(self):
              self.c = 3
              self.d = 4
  
          @property
          def e(self):
              "Property e"
              return 5
  
          @staticmethod
          def staticmethod1(self, x=10):
              "Static method 1"
  
          @classmethod
          def classmethod1(self, y=20):
              "Class method 1"
  
      my_instance = MyClass()
  
      with patch_varname_getter():
          st.help(my_instance)
  
      ds = self.get_delta_from_queue().new_element.doc_string
      self.assertEqual(len(ds.members), 7)
  
      expected_outputs = [
          ("a", "1", "", "int"),
          ("b", "2", "", "int"),
          ("c", "3", "", "int"),
          ("d", "4", "", "int"),
          ("e", "", "Property e", "property"),
          ("classmethod1", "", "Class method 1", "method"),
          ("staticmethod1", "", "Static method 1", "function"),
      ]
  
      for i, expected in enumerate(expected_outputs):
          self.assertEqual(ds.members[i].name, expected[0])
          self.assertEqual(ds.members[i].value, expected[1])
          self.assertEqual(ds.members[i].doc_string, expected[2])
          self.assertEqual(ds.members[i].type, expected[3])
  
imports: import inspect
  import sys
  import unittest
  from unittest.mock import patch
  import numpy
  import pytest
  import streamlit
  from streamlit.elements.doc_string import _get_variable_name_from_code_str
  from tests.delta_generator_test_case import DeltaGeneratorTestCase
label_desc: Use image node_id 15 for calling the StHelpTest obj's underlying member method code with example usage: obj.test_instance_members() and returns: int