not
is a boolean operator that returns the boolean inverse of the value. return
returns the result of that operator. In other words, the expression should be read as return (not self.myReturnCode)
. Quoting the documentation:
The operator
not
yieldsTrue
if its argument is false,False
otherwise.
If self.myReturnCode
is a true value, not self.myReturnCode
is False
, and vice versa. Note that self.myReturnCode
can be any Python value, but not
always returns a boolean value, either True
or False
.
If externalProcessPopen.returncode
is the return code of an external process, then it'll be a positive integer if the process exited with an error, 0
if it exited successfully. This is called the process exit status; what non-zero values are returned depends entirely on the process. not 0
is then True
, not 1
(or a higher integer value) gives you False
.
If it is None
, then True
(not None
is True
) would be returned as well, but a subprocess.Popen()
return code is only None
if the process has not yet exited.