Near Final PEP 247 - API for Cryptographic Hash Functions
Andrew Kuchling
akuchlin at mems-exchange.org
Tue Sep 25 10:30:45 EDT 2001
"Tim Peters" <tim.one at home.com> writes:
> It's unclear whether all modules conforming to this spec must support both
> flavors of "new". The syntax of the second flavor of new() is also unclear;
> perhaps
> new(key[, string])
> was intended? I expect I'd like it better if the string argument always
> came first, and that hash methods requiring a key require a keyword "key="
> argument.
That seemed backwards to me. With a keyed hash, the key is required
and a string is optional, so the key should therefore come first.
It's irritating that this can cause potential confusion if you
switched from an unkeyed to a keyed hash -- an initial string can be
interpreted as the key -- but it would be more irritating to have the
first parameter not be the only required one.
A recent suggestion from Rich Salz is to be even more minimal and
simply drop the string argument to the constructor; that's not such a
bad idea, since it ensures TOOWTDI. (Obviously I wouldn't rip out the
initial string argument for the MD5 and SHA modules included with
Python.)
--amk
More information about the Python-list
mailing list