Verilen cevaplar belirli bir modül için çalışsa da, Bu cevapta belirtildiği gibi alt modülleri yeniden yüklemezler :
Bir modül kullanarak başka bir modülden nesneleri içe aktarırsa , diğer modülü from ... import ...çağırmak reload()ondan içe aktarılan nesneleri yeniden tanımlamaz - bunun bir yolu from ifadesini yeniden çalıştırmaktır, diğeri bunun yerine importve nitelikli adlar ( module.*name*) kullanmaktır.
Ancak, __all__genel API'yı tanımlamak için değişken kullanılıyorsa, herkese açık tüm modülleri otomatik olarak yeniden yüklemek mümkündür:
# 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)
Önceki cevapta belirtilen uyarılar yine de geçerlidir. Özellikle, __all__değişken tarafından açıklandığı gibi genel API'nın bir parçası olmayan bir alt modülün değiştirilmesi, bu işlevi kullanan bir yeniden yüklemeden etkilenmez. Benzer şekilde, bir alt modülün bir elemanının çıkarılması yeniden yükleme ile yansıtılmaz.