There are many questions related to the use of the Singleton pattern in python, and although this question might repeat many of the aspects already discussed, I have not found the answer to the following specific question.

Let's assume I have a class MyClass which I want to instantiate only exactly once. In python I can do this as follows in the code myclass.py:

class MyClass(object): 
    def foo(self):
        ....


instance = MyClass()

Then in any other program I can refer to the instance simply with

import myclass
myclass.instance.foo()

Under what circumstances is this approach enough? Under what circumstances is the use of a Singleton pattern useful/mandatory?

Edit
Report