osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tutor] beginning to code


On Tue, Sep 19, 2017 at 8:26 PM, Rick Johnson
<rantingrickjohnson at gmail.com> wrote:
> In the spirit of my last comment, i was going to say: "Or if
> `x` does not support rich comparisons", but alas, it seems that
> _all_ objects in Python support rich comparisons, even when
> it doesn't make sense to! o_O For example:
>
>     >>> False > 1
>     False
>     >>> dir > 1
>     True
>     >>> isinstance < 100
>     False
>     >>> "" >= 10
>     True
>     >>> (1,) <= 500
>     False

Rick, I'm pretty sure you already know that you're being deceptive
here.  If anyone else comes across this and doesn't already realize
it, note that Rick is complaining about behavior that changed almost a
decade ago (with the release of Python 3.0).

Here's what a modern python does with those same statements:

Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> False > 1
False
>>> dir > 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: builtin_function_or_method() > int()
>>> isinstance < 100
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: builtin_function_or_method() < int()
>>> "" >= 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()
>>> (1,) <= 500
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: tuple() <= int()
>>>

-- 
Jerry