Ah, I see you are correct.
I was being lazy with syntax at the expense of semantics.
You can implement the abstract property more precisely like this:
class SubClass(BaseClass):
# Implementing the abstract property
@property
def required_property(cls):
return "I am from subclass"
being a property you can still access it succinctly:
SubClass().required_property
However, since they want a class variable, and class properties are (I’ve just discovered) deprecated, it might be best to override the property and make a class attribute anyway.
Unless ABC provides a way to make an abstract attribute I can’t think of a better way.