Python中如何重新引入被覆盖的自带function

在我们的博客中, 记录了我们在开发过程中所使用的技术和遇到的问题, 希望作为其他开发和设计者的一个学习交流平台.

Python中如何重新引入被覆盖的自带function


最近在写python应用时遇到一个问题: 引入某个模块时会自动引入自定义的int到python的namespace中, 从而覆盖了python自带的int function. 因为我们需要使用python的int, 所以不得不找到重新引入这int的方法:

幸运的是, 这一问题还是很容易解决的, 我们只需要使用__builtins__:

    from __builtins__ import int as py_int

这样一来我们又可以重新使用python的int了, 但在此时叫做py_int.

一个function或变量的被覆盖最常见的原因是在引用时使用了"*":

    from something import *

当这样使用import时, 我们无法明确的指导究竟引入了哪些变量或function, 也无法知道这些变量或function是否会覆盖原来的变量或function. 所以这也是在使用import时不推荐使用"*"的主要原因之一.

在python 3中, 可以使用builtins代替__builtins__.


原文链接: http://weiguda.com/blog/59/