Est-il avantageux pour la définition d'une classe à l'intérieur d'une autre classe en Python?

Ce dont je parle ici sont des classes imbriquées. En gros, j'ai deux classes que je suis de modélisation. Un DownloadManager classe et un DownloadThread classe. L'évidence de la programmation orientée objet concept ici est la composition. Cependant, la composition n'est pas nécessairement la nidification, à droite?

J'ai un code qui ressemble à quelque chose comme ceci:

class DownloadThread:
    def foo(self):
        pass

class DownloadManager():
    def __init__(self):
        dwld_threads = []
    def create_new_thread():
        dwld_threads.append(DownloadThread())

Mais maintenant je me demande si il y a une situation où la nidification serait mieux. Quelque chose comme:

class DownloadManager():
    class DownloadThread:
        def foo(self):
            pass
    def __init__(self):
        dwld_threads = []
    def create_new_thread():
        dwld_threads.append(DownloadManager.DownloadThread())