Maybe the def __main__() argument is already a dead horse, given the number of
discussions it has created that have ended nowhere, but I think one argument in
favour of its implementation would be including argument parsing in it, for
example:
# main.py
def __run__(first_num, second_num, print_operation=False):
"""
Adds two numbers.
positional arguments:
- first_num: the first number.
- second_num: the second number.
optional arguments:
- print_operation: prints the sum operation to stdout.
"""
result = int(first_num) + int(second_num)
if print_operation:
print(f'{first_num} + {second_num} = {result}')
else:
print(result)
$ python main.py -h
Adds two numbers.
positional parameters:
- first_num: the first number.
- second_num: the second number.
optional arguments:
- print_operation: prints the sum operation to stdout.
$ python main.py 1 2 --verbose
1 + 2 = 3
$ python main.py 1 2
3
The -h flag would print the function docstring. We could also add type hints
for casting (I'm not entirely sure how feasible this is):
def __run__(first_num: int, second_num: int, print_operation=False):
...
result = first_num + second_num # no need for casting here
...
Since __main__ is already a built-in function, I abstained from using it as the
designated function name (I picked __run__, but any other suggestions would be
welcome, also thought of __entrypoint__, __exec__). Thoughts?
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/IKTXZMTKGXWJB2IUZCWZNJEQARTAMWYB/
Code of Conduct: http://python.org/psf/codeofconduct/