python - Re-atribuindo um nome a si mesmo



(1)

Esse código ocorre em multiprocessing.dummy , uma versão "falsa" de multiprocessing que implementa a funcionalidade com threads. Se você olhar algumas linhas, verá

def Manager():
    return sys.modules[__name__]

multiprocessing.dummy implementa o Manager como uma função que apenas retorna o próprio módulo multiprocessing.dummy , portanto, o objeto do módulo multiprocessing.dummy precisa fornecer a API de um objeto do gerenciador de multiprocessamento. As linhas

dict = dict
list = list

copiar as ligações dos nomes dict e list do namespace incorporado para o namespace do módulo, para que você possa fazer

m = multiprocessing.dummy.Manager()
d = m.dict()

como se você tivesse um multiprocessing.Manager() .

https://ffff65535.com

Observe essas linhas no pacote de multiprocessing de bibliotecas padrão:

dict = dict
list = list

Qual é o sentido de religar alguns nomes já disponíveis em __builtins__ no escopo do módulo? O que está tentando alcançar? Eu procurei uma explicação no git blame, mas esse commit era grande e não havia comentários relevantes.





python