For example:

class FooBar:
    def __init__(self):
        self.a: int = None
        self.foo: str = None

Is this bad practice/go against PEP guidelines or is it fine?

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 7 months ago*

As can surmise from my handle, i'm even stricter!

Use Union, not | or Optional where ever possible.

Optional does not allow for future expansion of the typing. Optional[int] and then want to add float, so have to rewrite it Union[int, float, None] So write it with Union to begin with.

Went thru my | stage like everyone else, but grew out of it.

TypeAlias insists on Union, not |

So Union everywhere ftw

Why? If there is a possibility of making a mistake, Murphy's law dictates that it'll occur every damn time. Enough already! KISS principle is in effect.

  • source