182. Metaclasses

Snippet 1: Basic Metaclass Example

Copy

class MyMeta(type):
    def __new__(cls, name, bases, dct):
        print(f"Creating class {name}")
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=MyMeta):
    pass

# Output: Creating class MyClass

Snippet 2: Adding Custom Attributes to Classes

Copy

class AttributeAddingMeta(type):
    def __new__(cls, name, bases, dct):
        dct['custom_attribute'] = "Hello from metaclass"
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=AttributeAddingMeta):
    pass

print(MyClass.custom_attribute)  # Output: Hello from metaclass

Snippet 3: Validating Class Attributes

Copy


Snippet 4: Modifying Methods in a Class

Copy


Snippet 5: Enforcing Singleton Pattern

Copy


Snippet 6: Dynamically Creating Classes

Copy


Snippet 7: Customizing Class Instantiation

Copy


Snippet 8: Preventing Class Inheritance

Copy


Snippet 9: Adding Class Methods Automatically

Copy


Snippet 10: Counting Class Instances

Copy


Last updated