On 2023-07-17 18:10, Dom Grigonis wrote:
It does exactly the same as the C version and is more readable. Or am I missing something?
My point is exactly that it is not easily readable compared to C version. Also, unnecessarily verbose. The order of components is rather awkward.
I came to this, because people seem to want one-liners for certain things and what I came up with is that maybe more concise if-else expression could help.
# Fairly reasonable case.
def foo(a:bool, c:float, d:float) val= a? (c? c : d) : (d? d : c) return val
# Comapred to def bar(a:bool, c:float, d:float) val= (cif celse d)if aelse (dif delse c) return val
Maybe for someone who majored in languages python’s if-else is more easily understood. To me, personally, 2nd one is unbearable, while 1st one is fairly pleasant and satisfying.
This whole thing started from dict’s `get` extension:
def get_substitute(self, key, default=None, subs=()): return keyin self ? (self[key] := valin subs? subs[val] : val) : default
I dare you to do a 1-liner with current if-else.
def get_substitute(self, key, default=None, subs=()): return (self[key] := subs[val] if val in subs else val) if key in self else default Where does 'val' come from? [snip]