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?

  • _stranger_@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    5 days ago

    Python doesn’t need the name main check to function at all. that’s just a convenience feature that lets developers also include arbitrary entry points into modules that are part of a library and expected to be used as such. If you’re writing a script, a file with a single line in it reading print("hello world") will work fine when run: python thescript.py

    • bastion@feddit.nl
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      5 days ago

      Yes, because

      In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

      Note the “I have the flow of execution”, and the “if I want to build a library”.

      If you just want to build an executable, do as you wish, you already have the flow of execution.

      If you want to build a library, make the relevant classes and functions and get out of the way (i.e., no IO, no long-running tasks).

      If you want to combine them, use the main name check - or, make a package and do entry points that way. Either way works, because both can fulfill the goal of staying out of the way of those importing this as a library.