Terrible Horrible No Good Very Bad Python
2 days ago
- The code `return return False` returns `False` after the outer `return` is processed from a `finally` block.
- Normally, `os._exit` exits the process without cleanup, but omitting the argument raises a `TypeError`.
- The `finally` block silently swallows the `TypeError` due to the `return` statement, which is a common misuse.
- Python developers plan to issue a `SyntaxWarning` for `return` in `finally` blocks in a future release.
- Dynamic scoping in Python allows `import os` to work even if it appears after the function definition.
- `sys.exit` raises `SystemExit`, which can be caught by `finally`, unlike `os._exit` which directly terminates without running handlers.