Antoon Pardon wrote:
>I would say the same reason that we have get. There is no reason to have a builtin get it is easily implemented like this:
def get(dct, key, default):
try: return dct[key] except KeyError: return default
I would go even so far that there is more reason to have a built-in safeset and make, than there is a reason to have a built-in get.
The reason is that a python implementation of safeset and make, will mean two accesses in the dictionary, once for the test and once for the assignment. This double access could be eliminated with a built-in. The get on the other hand does only one dictionary access, so having it implemeted in python is a lesser burden.
That's not true; they're on more or less the same level computation-wise. try:...except... doesn't relieve the burden; it's expensive.
For me, the issue boils down to how often such constructs are used. I don't think that I've ever run into use cases for safeset() and make(). dct.get(key, default) comes up *a lot*, and in places where speed can matter. Searching through the standard library can give you an idea how often.
-- Robert Kern [EMAIL PROTECTED]
"In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list