Yes, you're completely right, but explicit is better than implicit. If there were no `or None`, another developer would think "hang on, what happens if both `used_fields.get(f.name)` and `used_fields.get(f.attname)` return `None`? may it happen or `clash` is never None? was the developer writing this code aware of that possibility?". If there is explicit `or None`, there is no place for doubt.