None is negative?

Benjamin Kaplan benjamin.kaplan at case.edu
Tue Aug 3 16:45:04 EDT 2010


On Tue, Aug 3, 2010 at 1:29 PM, Grant Edwards <invalid at invalid.invalid> wrote:
> On 2010-08-03, wheres pythonmonks <wherespythonmonks at gmail.com> wrote:
>
>> I did the google search... I must be blind as I don't see any hits...
>>
>> None is negative in Python?  (v2.6)
>
> Not really.
>
>> http://www.google.com/search?ie=UTF-8&q=%22none+is+negative%22+python
>>
>>>>> if None < -9999999.99: print "hi"
>>
>> hi
>>>>>
>>
>>>>> if -9999999 > None: print "hi"
>>
>> hi
>>>>>
>>
>> Is there a way to have the comparison raise an exception?
>
> Use Python 3.x.  Or perhaps there's a "from future import xxxx" way to
> do that as well...  Is there a list of available "from future"
> features somewhere?  I can't seem to figure out how to get Python
> itself to give me a list -- my copy of Python 2.6 insists there's not
> module named future.
>
> --


That would be because it's __future__, not future.

>>> import __future___
>>> help(__future__)
Help on module __future__:

NAME
    __future__ - Record of phased-in incompatible language changes.

FILE
    c:\program files (x86)\ironpython 2.6 for .net 4.0\lib\__future__.py

DESCRIPTION
    Each line is of the form:

        FeatureName = "_Feature(" OptionalRelease "," MandatoryRelease ","
                                  CompilerFlag ")"

    where, normally, OptionalRelease < MandatoryRelease, and both are 5-tuples
    of the same form as sys.version_info:

        (PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int
         PY_MINOR_VERSION, # the 1; an int
         PY_MICRO_VERSION, # the 0; an int
         PY_RELEASE_LEVEL, # "alpha", "beta", "candidate" or "final"; string
         PY_RELEASE_SERIAL # the 3; an int
        )

    OptionalRelease records the first release in which

        from __future__ import FeatureName

    was accepted.

    In the case of MandatoryReleases that have not yet occurred,
    MandatoryRelease predicts the release in which the feature will become par
    of the language.

    Else MandatoryRelease records when the feature became part of the language
    in releases at or after that, modules no longer need

        from __future__ import FeatureName

    to use the feature in question, but may continue to use such imports.

    MandatoryRelease may also be None, meaning that a planned feature got
    dropped.

    Instances of class _Feature have two corresponding methods,
    .getOptionalRelease() and .getMandatoryRelease().

    CompilerFlag is the (bitfield) flag that should be passed in the fourth
    argument to the builtin function compile() to enable the feature in
    dynamically compiled code.  This flag is stored in the .compiler_flag
    attribute on _Future instances.  These values must match the appropriate
    #defines of CO_xxx flags in Include/compile.h.

    No feature line is ever to be deleted from this file.

DATA
    __all__ = ['all_feature_names', 'nested_scopes', 'generators', 'divisi...
    absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0...
    all_feature_names = ['nested_scopes', 'generators', 'division', 'absol...
    division = _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192...
    generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 0)
    nested_scopes = _Feature((2, 1, 0, 'beta', 1), (2, 2, 0, 'alpha', 0), ...
    print_function = _Feature((2, 6, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0)...
    unicode_literals = _Feature((2, 6, 0, 'alpha', 2), (3, 0, 0, 'alpha', ...
    with_statement = _Feature((2, 5, 0, 'alpha', 1), (2, 6, 0, 'alpha', 0)...



Hm, looks like whatever IronPython is using to display the text is
cutting the lines short. That could be a problem. Anyway, you get the
idea.



More information about the Python-list mailing list