Coming from c this implementation looks similar to accessing pointers, in python is there more elegant way to do this?
if something is not None:
return something.x
else:
return None
if the instance itself is not null, then allow accessing its members.
any ideas? thanks
CodePudding user response:
For best clarity and easier for newcomers to understand, I believe you can use a single line if-else statment in Python:
val = something.x if something else None
As mentioned in comments, the above will go the else part even if something is a falsy value, such as 0.
In that case, you could also add an explicit check for a None value:
val = None if something is None else something.x
CodePudding user response:
If something is known to be either None or truthy (for example user-defined types that don't specify a __bool__ method), you can use something and something.x
There is PEP 505 which has been deferred, but if accepted (which is unlikely) would allow something?.x to get your specific behaviour.
