Abstract attribute (not property)?
A possibly a bit better solution compared to the accepted answer: from better_abc import ABCMeta, abstract_attribute # see below class AbstractFoo(metaclass=ABCMeta): @abstract_attribute def bar(self): pass class Foo(AbstractFoo): def __init__(self): self.bar = 3 class BadFoo(AbstractFoo): def __init__(self): pass It will behave like this: Foo() # ok BadFoo() # will raise: NotImplementedError: Can’t instantiate abstract class BadFoo … Read more