यद्यपि प्रदान किए गए उत्तर एक विशिष्ट मॉड्यूल के लिए काम करते हैं, वे सबमॉड्यूल को फिर से लोड नहीं करेंगे, जैसा कि इस उत्तर में दिया गया है :
यदि कोई मॉड्यूल किसी अन्य मॉड्यूल का उपयोग करके वस्तुओं को आयात करता है, तो दूसरे मॉड्यूल के लिए from ... import ...कॉल करने से आयात की गई वस्तुओं को reload()फिर से परिभाषित नहीं करता है - इसके चारों ओर एक तरीका बयान से फिर से निष्पादित करना है, दूसरा इसके बजाय उपयोग importऔर योग्य नामों ( module.*name*) का उपयोग करना है।
हालांकि, अगर __all__सार्वजनिक एपीआई को परिभाषित करने के लिए चर का उपयोग किया जाता है, तो सभी सार्वजनिक रूप से उपलब्ध मॉड्यूल को स्वचालित रूप से पुनः लोड करना संभव है:
# Python >= 3.5
import importlib
import types
def walk_reload(module: types.ModuleType) -> None:
if hasattr(module, "__all__"):
for submodule_name in module.__all__:
walk_reload(getattr(module, submodule_name))
importlib.reload(module)
walk_reload(my_module)
पिछले उत्तर में दिए गए विवरण हालांकि अभी भी मान्य हैं। विशेष रूप से, एक सबमॉड्यूल को संशोधित करना जो सार्वजनिक एपीआई का हिस्सा नहीं है जैसा कि __all__चर द्वारा वर्णित है, इस फ़ंक्शन का उपयोग करके पुनः लोड से प्रभावित नहीं होगा। इसी तरह, एक सबमॉड्यूल के एक तत्व को हटाने पर एक पुनः लोड नहीं होगा।