Lo spazio dei nomi builtin associato all'esecuzione di un blocco di codice è in realtà trovato cercando il nome __builtins__
nel suo spazio dei nomi globale; questo dovrebbe essere un dizionario o un modulo (in quest'ultimo caso viene usato il dizionario del modulo). Per impostazione predefinita, quando nel modulo , __builtins__
è il modulo incorporato __builtin__
(nota: no 's'); quando in qualsiasi altro modulo, __builtins__
è un alias per il dizionario del modulo __builtin__
stesso. __builtins__
può essere impostato su un dizionario creato dall'utente per creare una forma debole di esecuzione limitata.
Quindi, in realtà si sta cercando __builtins__
(dal momento che ci si trova nel modulo principale)
>>> __builtins__.max
<built-in function max>
Ma, come accennato in precedenza, questo è solo un alias per __builtin__
(che non fa parte del principale spazio dei nomi del modulo, sebbene sia stato caricato e referenziato da __builtins__
).
'__builtins __. Max' – jamylak