[Python-Dev] PEP 572: Usage of assignment expressions in C (original) (raw)

Raymond Hettinger raymond.hettinger at gmail.com
Mon Apr 30 23:30:34 EDT 2018


On Apr 28, 2018, at 8:45 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:

I personally haven't written a lot of C, so have no personal experience, but if this is at all a common approach among experienced C developers, it tells us a lot. I think it's a matter of taste and personal habit. Some people will often do it, some less. Note that C also has a tendency to make it more useful, because doesn't have exceptions, so functions need to (ab)use return values when they want to indicate an error. When you're calling such functions (for example I/O functions), you routinely have to check for special values indicating an error, so it's common to see code such as: // Read up to n bytes from file descriptor if ((bytesread = read(fd, buf, n)) == -1) { // Error occurred while reading, do something }

Thanks Antoine, this is an important point that I hope doesn't get lost. In a language with exceptions, assignment expressions are less needful. Also, the pattern of having of having mutating methods return None further limits the utility.

Raymond



More information about the Python-Dev mailing list