Явный доступ к встроенной области Python - PullRequest
10 голосов
/ 05 июня 2009

Как вы явно обращаетесь к имени во встроенной области видимости Python?

Одной из ситуаций, когда я столкнулся с этим, был модуль in, скажем, с именем foo, который, как оказалось, имел функцию open. В другом модуле открытая функция foo будет доступна как foo.open, которая работает хорошо. Хотя в самом foo открытые блоки встроены в открытые. Как вы можете получить доступ к встроенной версии имени, например, открыть явно?

Мне известно, что блокирование любого встроенного имени, вероятно, является практически плохой идеей, но мне все еще любопытно узнать, существует ли способ явного доступа к встроенной области.

Ответы [ 2 ]

12 голосов
/ 05 июня 2009

Использование __builtin__.

def open():
    pass

import __builtin__

print open
print __builtin__.open

... дает вам ...

<function open at 0x011E8670>
<built-in function open>

0 голосов
/ 05 июня 2009

Это что-то вроде

__builtins__.open()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...