Preventing direct access to a class
danielk at aracnet.com
Sun Feb 4 18:53:33 CET 2001
I have a situation where I need to prevent direct access to a class. IOW, the
only way I wish a class to be instantiated is via another class. For example
>>> class A:
>>> class B:
>>> b = B()
>>> a = b.foo()
...and there might be other classes that 'return A()'.
I do not want the user to be allowed to do this...
>>>a = A()
It doesn't look like classes can be made 'private to the module' as I tried to
define class A as 'class __A'. The user could still access with a=__A() (no
Other than placing some convoluted logic in each class, is there a way to
accomplish this pythonic-ly?
More information about the Python-list