On 5/26/2011 3:18 AM, Algis Kabaila wrote:

And why do you insist on calling an instance of list, "list"? Even a
human reader will confuse which is which. What you are showing is an
example how confusing things become when a keyword (list) is
over-written (with list instance).

(Minor note: 'list' is not a keyword (if it were, it could not be over-ridden) but it is a builtin.) You are correct, it is confusing. Such usage will also lead to bugs if one ever tries to access the class as 'list' later in the program.

Here is a legitimate usage of builtins masking:

import builtins
def list(iterable):
    print('building list from {}: {}'.format(type(iterable),iterable))
    return builtins.list(iterable)

a = list((1,2,3))
b = list({1,2,3})
###
building list from <class 'tuple'>: (1, 2, 3)
building list from <class 'set'>: {1, 2, 3}

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to