<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_properties(self):
 """Get a list of all of the public data properties of this class. Returns: list of str: A list of all of the public properties in this class. """


        names = inspect.getmembers(self, predicate=lambda x: not inspect.ismethod(x))
        return [x[0] for x in names if not x[0].startswith("_") and x[0] not in self._ignored_properties]