当我使用函数all()
时,我在python脚本中遇到了一个非常奇怪的问题。
控制台为此行提供了false
(这显然是正确的):
all(x == 2 for x in (8,2,2,2))
在我的脚本中,同一行返回true
?!
这里发生了什么?是否有其他all()
函数可以在我的脚本中覆盖它?我正在导入以下模块:
import os
import sys
import string
import time
from time import gmtime, strftime
from optparse import OptionParser, OptionGroup
import cx_Oracle
from pylab import *
import ROOT
from array import array
import logging
from traceback import format_exc
答案 0 :(得分:5)
要在内置all()
被粉碎时访问它,您可以导入builtins
。 E.g:
from builtins import all
(在导入pylab
的行下方。)
或者,如果您需要访问pylab.all()
,则可以执行以下操作:
import builtins
...
builtins.all()
或者,更好的是,import pylab
而不是from pylab import *
。
您可能也希望使用pylab
提交错误报告,这是非常糟糕的行为。虽然请注意,出于这个原因,不鼓励import * from ...
使用导入。
正如DSM在评论中指出的那样,这假设您使用的是3.x,在2.x之下,它是__builtin__
。