I still do not understand why do you need `__new__` when this error can be raised in `__init__` as well (`cls == type(self)`).

Anyway, this seems like a really strange abuse of classes in python. You are practically creating new classes each time that you use `set_time`. What will happen for instance if I call `set_time` a second time? In addition, `set_time` will be visible to the instances of the class as well - this is sure to cause confusion.

I guess that Prasoon will have some 'World' or 'Space' or something like that class. This seems like a more appropriate place for the time parameter.