(meta, name, bases, class_dict)
| 75 | print("Example 2") |
| 76 | class ValidatePolygon(type): |
| 77 | def __new__(meta, name, bases, class_dict): |
| 78 | # Only validate subclasses of the Polygon class |
| 79 | if bases: |
| 80 | if class_dict["sides"] < 3: |
| 81 | raise ValueError("Polygons need 3+ sides") |
| 82 | return type.__new__(meta, name, bases, class_dict) |
| 83 | |
| 84 | class Polygon(metaclass=ValidatePolygon): |
| 85 | sides = None # Must be specified by subclasses |