this post was submitted on 16 Mar 2026
17 points (100.0% liked)

Python

7811 readers
33 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

πŸ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
πŸ’“ Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
 

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
[–] jtrek@startrek.website 2 points 1 hour ago (1 children)

Yeah, if you initialize them to None then for the entire rest of the class you're going to have to account for the possibility that they're None. If it's unavoidable that they might be None, you should type it as such.

If you type them as like str | None then later when you do like return foo[0] it will warn you that you can't do that with None.

[–] solrize@lemmy.ml 1 points 29 minutes ago (1 children)

foo[0] is also unsafe unless foo is known to be nonempty, ofc.

[–] jtrek@startrek.website 1 points 27 minutes ago

Technically correct , the best kind of correct.

foo.lower() would have been a better example.