What is __all__ in Python?
In this article we will learn what __all__ is in Python and how we should use this instruction in our software to take advantage of its benefits.

What’s up programmer, ok? Let’s learn more about Python!
__all__ instruction is used when we create a module and we are going to export its properties and methods
Then __all__ takes action, with a list of strings that will be exactly the elements that we are going to export from this module
And they will be publicly accessible by the code that imported them, let’s see it in practice:
__all__ = ['a','b'] a = 5 b = 'test' def c(): print("Hey")
This is our module, which with __all__ will only export the variables a and b, that is, we cannot use the c function outside of it
Now look at our second file:
from module import * print(a)
Here we import everything from our module, but we can only use what is in __all__
That is, a and b, and if we try to use c, we will get an error
Check the output:
5
So that’s what __all__ is for, to make declarative what we’re going to export from our module, to be used publicly by others who import it
It is important to mention two things:
If __all__ is removed, everything will be exported normally;
__all__ only works for import *, direct import can access all methods normally;
Conclusion
In this article we learned what __all__ is for in Python
Basically, we can, through this instruction, control what is exported from our modules
But __all__ will only work through import *, direct import will ignore this instruction