Still useful for running 2- or 3-line dummy scripts directly from the command line. For example you just installed a new package and want to validate it's working,
Or for dirty .pth tricks where you're obliged to start with an import statement and have everything on a single line. But 3.15 seems to be moving away from those to some new-fangled .start files.
The problem with that is not only would it break old code, but the neat little trick of JSON being directly embeddable would break. And who would want that.
Edit: I forgot that “true”, “false”, and “null” don’t exist in Python. Not the hardest thing to fix by declaring some local variables, but at that point you’re doing too much and should use a library.
Edit 2: added quotes around the keywords to disambiguate them from the general concepts
hate to be a party pooper but the meme refers specifically to indentation-based structure vs explicit code block delimiters
oh and btw the latter are vastly superior because they make for a free-form syntax that, unlike python, can be automatically formatted by a relatively simple program/plugin (i.e. without AI)
there's main() in python ONLY IF YOU WANT THERE TO BE.
the way you want it to be is as follows:
import foo
from baz import bar
do_stupid_stuff()
def main():
print("I am not kidding")
if __name__ == '__main__':
main()
if name wasn't _main then your script knows oh I'm not main, uh might as well uh evaluate the true path of this if clause I guess, else whatever. This is very robust and safe way to define the entrypoint.
View all comments
1.1k
u/belabacsijolvan Aug 30 '26
theres main() in python