pythonintermediate
Metaclass
Advanced Python pattern: metaclass
pythonPress ⌘/Ctrl + Shift + C to copy
class RegistryMeta(type):
registry: dict[str, type] = {}
def __new__(mcls, name, bases, ns):
cls = super().__new__(mcls, name, bases, ns)
if name != 'Plugin':
mcls.registry[name.lower()] = cls
return cls
class Plugin(metaclass=RegistryMeta):
pass
class CsvPlugin(Plugin):
pass
print(RegistryMeta.registry)Use Cases
- advanced programming
- patterns
Tags
Related Snippets
Similar patterns you can reuse in the same workflow.
pythonbeginner
Type Hints
Advanced Python pattern: type-hints
Best for: advanced programming
#python#advanced
pythonintermediate
Dataclass
Advanced Python pattern: dataclass
Best for: advanced programming
#python#advanced
pythonadvanced
Abc Abstract
Advanced Python pattern: abc-abstract
Best for: advanced programming
#python#advanced
pythonbeginner
Enum Types
Advanced Python pattern: enum-types
Best for: advanced programming
#python#advanced