Sobes.tech
Junior — Middle

Is it possible to prevent creating a new object inside the __new__ method of a class?

sobes.tech AI

Answer from AI

Yes, it is possible to prevent the creation of a new object inside the __new__ method. The __new__ method is responsible for creating an instance of the class, and if it returns None or an object of a different type, the instance creation will not occur.

An example where object creation is blocked:

class NoInstance:
    def __new__(cls, *args, **kwargs):
        print("Object creation is forbidden")
        return None

obj = NoInstance()  # Will print the message, obj will be None
print(obj)  # None

Thus, by controlling the return value in __new__, you can prevent the creation of an instance.