A few lines of code about __all__
dates/
- __init__.py
- tomorrow.py
- tomorrow_all.py
tomorrow.py:
import datetime
def tomorrow():
return (datetime.datetime.now() + datetime.timedelta(days=1)).date()
tomorrow_all.py:
import datetime
__all__ = ['tomorrow']
def tomorrow():
return (datetime.datetime.now() + datetime.timedelta(days=1)).date()
- Without
__all__
__init__.py:
from .tomorrow import *
>>> from dates import tomorrow
>>> tomorrow()
datetime.date(2015, 2, 18)
>>> from dates import datetime
>>> datetime
<module 'datetime' from '/Users/nanvel/myprojects/tests/all_test/.env/lib/python2.7/lib-dynload/datetime.so'>
- With
__all__
__init__.py:
from .tomorrow_all import *
>>> from dates import tomorrow
>>> tomorrow()
datetime.date(2015, 2, 18)
>>> from dates import datetime
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name datetime
__all__is not required
__init__.py:
from .tomorrow import tomorrow
>>> from dates import tomorrow
>>> tomorrow()
datetime.date(2015, 2, 18)
>>> from dates import datetime
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name datetime
Licensed under CC BY-SA 3.0