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?

  • solrize@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    7 days ago

    Python advertises itself as being mature, which means changes if any are supposed to be incremental and backwards compatible. It’s not so successful at that but I still don’t particularly try to keep up with the bleeding edge. I don’t know what slots in dataclasses even means. I do like the match statement.

    • logging_strict
      link
      fedilink
      arrow-up
      1
      ·
      7 days ago

      LOL have never used the match statement. Has been one of those features just outta reach. So close can taste it. But alas …

      Now py310 is here. Still not enthusiastic about it. But over time maybe will come around.

      __slots__ = (...) or frozen. Same thing. Make the data class read-only reducing memory usage by 30-40%. Like the memory usage difference between tuple and list.

      From experience, in stubs, __slots__ need to include "__weakref__". If frozen, then don’t include "__weakref__".

      How about this. Lets meet each other half way.

      I’ll stop thinking of the match statement as thorium reactor toxic waste.

      And maybe you can take a read through of the frozen option for dataclasses.

      Sound fair?

      • solrize@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        7 days ago

        If I need something like slots I’ll keep them in mind. Thanks for calling my attention to them.