this post was submitted on 28 May 2025
726 points (96.3% liked)

Programmer Humor

23844 readers
4451 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

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?

(page 2) 50 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 1 week ago

Call the function from the if block.

Now your tests can more easily call it.

I think at my last job we did argument parsing in the if block, and passed stuff into the main function.

[–] [email protected] 6 points 1 week ago* (last edited 1 week ago) (1 children)

Alternative: put entry point code in file __main__.py & run the containing package (eg, some_package) as a top-level expression (eg, python -m some_package).

load more comments (1 replies)
[–] [email protected] 6 points 1 week ago (1 children)

Does everyone call the function of the script main? I never use main(), just call the function what the program is supposed to do, this program calculates the IBNR? The function is called calculate_IBNR(), then at the end of the script if name = 'main': calculate_IBNR(test_params) to test de script, then is imported into a tkinter script to be converter to an exe with pyinstaller

[–] [email protected] 3 points 1 week ago

All of mine are called do_thing() because after a few days of working on it, the scope creep always means the original name was wrong anyway.

[–] [email protected] 5 points 1 week ago* (last edited 1 week ago) (1 children)

wait till you see

if __name__ = "__main__":

   main()
`
[–] [email protected] 4 points 1 week ago* (last edited 1 week ago) (1 children)

Luckily Python is one step ahead:

Python 3.13.3 (main, Apr 22 2025, 00:00:00) [GCC 15.0.1 20250418 (Red Hat 15.0.1-0)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> if __name__ = "__main__":
... 
...    main()
...    
    File "<python-input-0>", line 1
    if __name__ = "__main__":
        ^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

Also TIL that := is a thing in Python.

load more comments (1 replies)
[–] [email protected] 5 points 1 week ago

The if block is where my arg parser goes

[–] [email protected] 3 points 1 week ago (1 children)

I've always found needing to manually add a class instance parameter (i.e. self) to every object method really weird. And the constructors being named __init__. Not having multiple dispatch is kinda annoying too. Needing to use decorators for class methods, static methods, and abstract classes is also annoying. Now that I think about it, Python kinda sucks (even though it's the language I use the most, lol).

[–] [email protected] 3 points 1 week ago (1 children)

Nah self is quite important. The main part of a method is to access the state of the object. self is just the interface to it.

[–] [email protected] 4 points 1 week ago

Guess I just prefer languages that do it this way:

class AClass {
  var aProp = 0

  fun aMethod() {
    aProp++
  }
}

Though I suppose confusion and bugs can happen when you do something like:

class AClass {
  var aProp = 0

  fun aMethod(aProp: Int) {
    // `this.aProp` is needed to access the property
  }
}
load more comments
view more: ‹ prev next ›