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 must log in or register to comment.
Implicit optional is deprecated. Explicitly use
self.foo: int | None = NoneThanks! Good to know.
That seems like that’s going to give you an error in most type checkers. You said it’s always an int and then immediate made that a lie and made it None instead.
Why are you trying to do this?
I’m initializing variables that would be used later in the class in different functions. I wasn’t sure if I needed to do a
var: <type> | None = Noneor if just setting it to None was fine.
Why not require values in the constructor?
This is an example. For my actual use case, they would be private vars that would be set by class functions instead of passed to the constructor.


