class AlgPart:
def __init__(self):
# No magic values. None = "no custom name set".
self._custom_name = None
def setName(self, name: str):
# Explicit setter. Works in every language.
self._custom_name = name
def myName(self):
# Ultra-portable logic:
# If a custom name exists, return it.
# Otherwise, return the class name.
if self._custom_name is not None:
return self._custom_name
return self.__class__.__name__