I don't understand the meaning of the line:
parameter and (" " + parameter) or "" where parameter is string
Why would one want to use and and or operator, in general, with python strings?
The * operator can be used to repeat the string for a given number of times. Writing two string literals together also concatenates them like + operator. If we want to concatenate strings in different lines, we can use parentheses.
Python logical operator “and” and “or” can be applied on strings. An empty string returns a Boolean value of False.
Complex conditions in Python's if statements: and + or. To handle complex scenarios, our if statement can combine the and and or operators together. That way we turn several conditions into code, of which some have to happen simultaneously ( and ) while others need just one to be True ( or ).
Suppose you are using the value of parameter, but if the value is say None, then you would rather like to have an empty string "" instead of None. What would you do in general?
if parameter: # use parameter (well your expression using `" " + parameter` in this case else: # use "" This is what that expression is doing. First you should understand what and and or operator does:
a and b returns b if a is True, else returns a.a or b returns a if a is True, else returns b.So, your expression:
parameter and (" " + parameter) or "" which is effectively equivalent to:
(parameter and (" " + parameter)) or "" # A1 A2 B # A or B How the expression is evaluated if:
parameter - A1 is evaluated to True:
result = (True and " " + parameter) or "" result = (" " + parameter) or "" result = " " + parameter parameter - A1 is None:
result = (None and " " + parameter) or "" result = None or "" result = "" As a general suggestion, it's better and more readable to use A if C else B form expression for conditional expression. So, you should better use:
" " + parameter if parameter else "" instead of the given expression. See PEP 308 - Conditional Expression for motivation behind the if-else expression.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With