A RetroSearch Logo

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

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2002-March/020916.html below:

[Python-Dev] Boolean transition

[Python-Dev] Boolean transitionPaul Prescod paul@prescod.net
Sun, 10 Mar 2002 17:51:44 -0800
Guido van Rossum wrote:
> 
>...
> 
> I don't know about others, but *my* arguments for making bool a
> subtype of int has *nothing* to do with the fact that ints can be used
> in a bool context.  (That would be reversing the inheritance, as you
> point out.)  It is rather the opposite: bool values gotten from
> certain operations (e.g. comparisons, and most built-in predicate
> functions) are commonly used in int contexts, because they are
> currently represented by 0 and 1.  So the constraint under which we're
> operating is that bool values must be ints.  This constraint has only
> two possible solutions: (a) continue to use int as the type of choice
> for bool results, and define builtins False = 0 and True = 1; or (b)
> make bool a subtype of int.

Agree 100%. The question is whether five years or ten years or twenty
years from now booleans will still be a subtype of integers. We have
deprecation techniques that allow us to start a transition to a world
where logic and integer arithmetic are completely separate.

> I do not want to say that in the future only bool is acceptable in a
> Boolean context; it would remove too many of my favorite ways of
> expression things clearly with few words. 

I agree with this too. The question is whether Python 3000 will still
allow this without error:

def foo(int_size, b_metric_unit):
  if b_metric_unit:
	return int_size * 10

foo(false, 10)

I would say that one day (not tomorrow!) the multiplication of a boolean
should raise an assertion as nonsensical.

 Paul Prescod



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