A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2002-May/024802.html below:

[Python-Dev] Removing types module from stdlib

[Python-Dev] Removing types module from stdlibRaymond Hettinger python@rcn.com
Fri, 31 May 2002 11:38:27 -0400
There were a couple of threads on comp.lang.py with headings like
"isinstance considered harmful".  The conclusion was that most cases should
have been coded some other way.  The legitimate uses included implementing
multiple dispatch (supporting calls with type differentiated signatures) ,
factory functions, decorator pattern (which needs to know if the object was
previously decorated), and the composite pattern (which needs to know if it
is dealing with an atom or a composite).

Here are some of the ideas for conversion:

if type(x) is int     -->  if x==int(x)    # 3L would be passable

if type(x) == types.FileType  --> if hasattr(x, 'read')  # StringIO would
work

if type(x) is str:  x = x.lower()  -->

try:
   x = x.lower()
except AttributeError:
   pass

If the type check is meant to verify that an interface is supported, the
try/except form maximized substitutability of objects which simulate the
interface (like a UserDict or Shelve in place of a dictionary).

I'm not sure this kind of conversion should be done everywhere but it could
be an opportunity to remove unnecessary type dependencies.


Raymond Hettinger




----- Original Message -----
From: "Neal Norwitz" <neal@metaslash.com>
To: <python-dev@python.org>
Sent: Friday, May 31, 2002 10:08 AM
Subject: [Python-Dev] Removing types module from stdlib


> Should I start converting/removing uses of the types module where
possible?
>
> So where we have:
> assert type(lineno) is types.IntType
> assert type(lineno) in (types.IntType, types.LongType)
>
> would become:
> assert type(lineno) is int
> assert type(lineno) in (int, long)
>
> or
> assert isinstance(lineno, int)
> assert isinstance(lineno, (int, long))
>
> Preferences?
>
> Neal
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
>





RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4