[Python-Dev] Call for prudence about PEP-572 (original) (raw)
Anthony Flury anthony.flury at btinternet.com
Mon Jul 9 18:26:25 EDT 2018
- Previous message (by thread): [Python-Dev] Call for prudence about PEP-572
- Next message (by thread): [Python-Dev] Call for prudence about PEP-572
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 09/07/18 08:26, Matěj Cepl wrote:
On 2018-07-07, 15:48 GMT, Guido van Rossum wrote:
if validate(name := re.search(pattern, line).group(1)): return name Except there is no error handling for situations when re.search() returns None, so one shouldn't use it anyway (most of the time). Which seems to me like another nice example why one should stay away from this style as much as possible. I am too lazy to be tempted into this nice-example-terrible-production-code world. So wrap it in a try/except to capture the re.search returning None:
try: if validate(name := re.search(pattern, line).group(1)): return name except TypeError: # No match case
And this solution is even better if the validate function raises an exception rather than True/False
which I think is much better than trying to do multiple steps :
match = re.search(pattern, line) if match is not None: name = match.group(1) if name and validate(name): return name else: # No valid case else: # No Match case
Best,
Matěj
--
Anthony Flury email : Anthony.flury at btinternet.com Twitter : @TonyFlury <https://twitter.com/TonyFlury/>
- Previous message (by thread): [Python-Dev] Call for prudence about PEP-572
- Next message (by thread): [Python-Dev] Call for prudence about PEP-572
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]