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?

  • logging_strict
    link
    fedilink
    arrow-up
    2
    ·
    18 hours 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.