• @JustAnotherKay@lemmy.world
    link
    fedilink
    English
    13 days ago

    Doesn’t matter what it implies. The entire purpose of programming is to make it so a human doesn’t have to go do something manually.

    not x tells me I need to go manually check what type x is in Python.

    len(x) == 0 tells me that it’s being type-checked automatically

    • @sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      13 days ago

      That’s just not true:

      • not x - has an empty value (None, False, [], {}, etc)
      • len(x) == 0 - has a length (list, dict, tuple, etc, or even a custom type implementing __len__)

      You can probably assume it’s iterable, but that’s about it.

      But why assume? You can easily just document the type with a type-hint:

      def do_work(foo: list | None):
          if not foo:
              return
          ...