From: John H. <jdh...@ac...> - 2004-11-15 18:56:05
|
>>>>> "Chris" == Chris Barker <Chr...@no...> writes: Chris> Darren Dale wrote: >> >I guess there is no way in Python of emulating >Matlab"s >> detection of the number of output arguments. I just got a >> response from c.l.p. Somebody remembered seeing this at ASPN: >> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/284742 >> expecting() is the workhorse, equivalent to Matlab's nargout: Chris> Very cool. but I'd caution against using it. I'd much Chris> rather see matplotlib be pythonesque than an exact Chris> duplicate of MATLAB. This is NOT pythonesque! I tend to agree with the caution against using it. But it would be useful in some contexts, like converting existing matlab m-files to python/numeric/numarray, the desire for which has occurred in some contexts. Last time the discussion came up, the lack of nargout was raised as a problem for any converter code. Chris> Precisely speaking, python functions ALWAYS return just one Chris> object: A tuple. That tuple can contain any number of other Chris> objects, and sequence unpacking means it can look like Chris> you're returning multiple values, but you're not Chris> really. i.e. What do you mean that python functions always return a tuple? How about functions that return an int, or a string, or whatever? >>> def func(): return 1 >>> type(func()) <type 'int'> Do you mean that python functions that return tuples always return tuples <wink> ? JDH |