Encapsulation, inheritance and polymorphism
bc at freeuk.com
Thu Jul 19 02:41:38 CEST 2012
"Lipska the Kat" <lipska at lipskathekat.com> wrote in message
news:c76dnV778_sw4ZvNnZ2dnUVZ8uKdnZ2d at bt.com...
> On 18/07/12 01:46, Andrew Cooper wrote:
>> if not (you are permitted to do this):
>> return -EPERM
>> if not (you've given me some valid data):
>> return -EFAULT
>> if not (you've given me some sensible data):
>> return -EINVAL
>> return actually_try_to_do_something_with(data)
>> How would you program this sort of logic with a single return statement?
>> This is very common logic for all routines for which there is even the
>> remotest possibility that some data has come from an untrusted source.
> someType result = -EINVAL //or your most likely or 'safest' result
> if not (you are permitted to do this):
> result = -EPERM
> if not (you've given me some valid data):
> result = -EFAULT
> if not (you've given me some sensible data):
> result = -EINVAL
> result = -EDSOMETHING
> return result
> //cohesive, encapsulated, reusable and easy to read
But, it works differently from the above. Perhaps replace some of those "if"
statements with "elif".
The "return" version is handy because it provides a quick escape mechanism
without cluttering up the rest of code with extra variables.
More information about the Python-list