Also, do y’all call main() in the if block or do you just put the code you want to run in the if block?

  • @jacksilver@lemmy.world
    link
    fedilink
    134 days ago

    The point of the name==main logic is that it checks if that is the file that was invoked (like running python filename.py). If you just put a main() in the global scope it will be called either when the file is invoked or loaded (which can cause unintended consequences).

    • @littlewonder@lemmy.world
      link
      fedilink
      24 days ago

      Dumb person question: if it’s good practice to do this so things don’t go sideways, shouldn’t it be a built-in feature/utility/function/whatever?

      • @jacksilver@lemmy.world
        link
        fedilink
        2
        edit-2
        4 days ago

        It is “built-in” as the name is part of python. However, Python runs top to bottom, rather than having a special entrypoint. So name is just a utility you can use in your design.

        While it can be a good practice to define a main entrypoint, that’s more of a design decision and not hard rule. Many applications would not benefit from it because there is only one way to actually call the application to begin with.

        Edit: Also not a dumb question. All programming languages have unique elements to them due to how they were envisioned and or developed over time (Pythons 30 years old)