2013-04-27 9 views

Odpowiedz

4

Przestrzeń nazw builtins związana z wykonaniem bloku kodu jest faktycznie znaleziona przez wyszukanie nazwy __builtins__ w globalnej przestrzeni nazw; powinien to być słownik lub moduł (w tym ostatnim przypadku używany jest słownik modułu). Domyślnie, w module __main__, __builtins__ jest wbudowanym modułem __builtin__ (uwaga: nie 's'); kiedy w jakimkolwiek innym module, __builtins__ jest aliasem dla samego słownika modułu __builtin__. __builtins__ można ustawić na słownik utworzony przez użytkownika, aby utworzyć słabą formę ograniczonej realizacji.

Tak naprawdę to szuka się __builtins__ (skoro jesteś w głównym module)

>>> __builtins__.max 
<built-in function max> 

Ale jak wspomniano powyżej, to tylko aliasem __builtin__ (które nie jest częścią głównej przestrzeń nazw modułu, mimo że została załadowana i przywoływana przez __builtins__).

4

__builtin__ to tylko sposób na import/dostęp do modułu pseudo w przypadku, gdy chcesz wymienić lub dodać funkcję, która jest zawsze dostępna globalnie. Nie musisz importować go, aby korzystać z funkcji. Ale __builtin__ sama nie istnieje na __builtin__, więc nie jest dostępna bez wcześniejszego zaimportowania.

Aby uzyskać więcej informacji o tym module, patrz: the python docs.

2

Nie musisz mieć numeru import __builtin__, aby wszystkie nazwy built-in były dostępne. Ale musisz zaimportować go, aby nazwa __builtin__ była dostępna w zasięgu twojego kodu.

Powiązane problemy