all()为同一个表达式返回不同的值

时间:2012-10-20 12:01:01

标签: python

当我使用函数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

1 个答案:

答案 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__