3

function を使用すると、Python スクリプトで非常に奇妙な問題に直面していますall()

コンソールは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
4

1 に答える 1

5

ビルトインが破壊されているときにアクセスするall()には、インポートできますbuiltins。例えば:

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__.

于 2012-10-20T12:07:49.667 に答える