显式访问Python的内置范围

amj*_*onn 10 python

如何在Python的内置范围中显式访问名称?

我遇到这种情况的一种情况是一个模块,比如称为foo,碰巧有一个开放的功能.在另一个模块中,foo的open函数可以作为foo.open访问,该函数运行良好.但是在foo本身,打开内置的打开块.如何访问明确打开的名称的内置版本?

我知道阻止任何内置名称可能实际上是个坏主意,但我仍然很想知道是否有办法显式访问内置范围.

Chr*_* B. 12

使用__builtin__.

def open():
    pass

import __builtin__

print open
print __builtin__.open
Run Code Online (Sandbox Code Playgroud)

... 给你 ...

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

  • 很长很长一段时间,你可以看到这个帖子可以追溯到1992年:http://www.python.org/search/hypermail/python-1992/0049.html(当时它叫做builtin而不是__builtin__).不担心旧版本不支持它;-) (2认同)