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
    1
    ·
    7 days ago

    That’s fine. But you coulda had access to latest greatest updates. Whether you need them or not.

    • 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.