Skip to content

Instantly share code, notes, and snippets.

@mnogom
Last active July 31, 2023 17:13
Show Gist options
  • Save mnogom/2b6592d7b50efe536ac173f64a98ca3e to your computer and use it in GitHub Desktop.
Save mnogom/2b6592d7b50efe536ac173f64a98ca3e to your computer and use it in GitHub Desktop.
class Parent
...
@classmethod
def __init_subclass__(cls, **kwargs):
dir_subclass = set(field for field in dir(cls) if not field.startswith(f"_{cls.__name__}__"))
dir_base = set(field for field in dir(cls.__base__))
extra_dir = dir_subclass.difference(dir_base)
if extra_dir:
raise CellCantHasExtraFieldException(
f"Нельзя расширять класс. Дополнительные поля: {extra_dir}"
)
return super().__init_subclass__(**kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment