Sto guardando il codice in questo repo https://github.com/datacenter/cobra e sto vedendo le importazioni dai comandi incorporati come segue in alcuni file:Perché importare i builtin se non si ridefiniscono mai le funzioni predefinite?
cobra/internal/codec/jsoncodec.py:15:from builtins import str
cobra/internal/codec/xmlcodec.py:15:from builtins import str
cobra/internal/base/moimpl.py:16:from builtins import next
cobra/internal/base/moimpl.py:17:from builtins import str
cobra/internal/base/moimpl.py:18:from builtins import object
cobra/internal/rest/accessimpl.py:15:from builtins import object
cobra/internal/rest/accessimpl.py:16:from builtins import str
cobra/mit/session.py:15:from builtins import str
cobra/mit/session.py:16:from builtins import object
cobra/mit/meta.py:16:from builtins import str
cobra/mit/meta.py:17:from builtins import next
cobra/mit/meta.py:18:from builtins import object
cobra/mit/access.py:21:from builtins import object
cobra/mit/naming.py:15:from builtins import next
cobra/mit/naming.py:16:from builtins import str
cobra/mit/naming.py:17:from builtins import object
cobra/mit/request.py:15:from builtins import str
cobra/mit/request.py:16:from builtins import object
Qual è la logica/ciò che si guadagna in questo modo? Non c'è posto nel modulo in cui questi oggetti sono ridefiniti.
Su una nota a margine, questo rompe la compatibilità 2.7 che mi aspettavo da questo modulo, come specificato nei documenti.
Forse una buona idea dovrebbe essere quella di chiedere agli sviluppatori del progetto perché diavolo lo fanno! –
Avere quei nomi nello spazio dei nomi del modulo sarà 1. leggermente più performante che accedervi come built-in, e 2. non sarà influenzato da eventuali ridefinizioni dei moduli built-in successivi importati. Perché l'hanno fatto, non posso dire; la gente mi è piaciuta molto meglio in questo modo ... – kindall
In quale caso hai bisogno di prestazioni con metodi incorporati per l'importazione? E, questo approccio non funziona su Python 2.x –