Terry Reedy wrote: > As far as I know, apply(func, args) is exactly equivalent to func(*args).
After playing around a bit I did find one difference in the errors they can create. >>> def count(): ... yield 1 ... >>> apply(f, count()) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: apply() arg 2 expected sequence, found generator >>> f(*count()) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: len() of unsized object >>> That led me to the following >>> class Blah: ... def __len__(self): ... return 10 ... def __getitem__(self, i): ... if i == 0: return "Hello!" ... raise IndexError, i ... >>> blah = Blah() >>> len(*blah) 6 >>> apply(len, *blah) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: len() takes exactly one argument (6 given) >>> Is that difference a bug? Andrew [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list