I have:
class MyClass:
my_var: Optional[str] = None
@classmethod
def get_my_var(cls) -> str:
""" Sets cls.my_var if it's not set before """
my_var = cls.my_var
if my_var is not None:
return my_var
my_var = cls.some_func()
cls.my_var = my_var
return my_var
This reason I do this, instead of setting my_var
in self.__init__()
is because MyClass
is often used without an instance, e.g.: MyClass.my_var
and the callers expect my_var
to have a default value from cls.some_func()
How can I achieve this in python 3.8+? Can I do a @property
decorator here? Can I force MyClass
to assign my_var
a value from cls.some_func()
?