On Wed, 15 Jun 2022 04:47:31 +1000, Chris Angelico wrote: > Don't bother with a main() function unless you actually need to be > able to use it as a function. Most of the time, it's simplest to > just have the code you want, right there in the file. :) Python > isn't C or Java, and code doesn't have to get wrapped up in > functions in order to exist.
Actually a main() function in Python is pretty useful, because Python code on the top level executes a lot slower. I believe this is due to global variable lookups instead of local. Here is benchmark output from a small test. ``` Benchmark 1: python3 test1.py Time (mean ± σ): 662.0 ms ± 44.7 ms Range (min … max): 569.4 ms … 754.1 ms Benchmark 2: python3 test2.py Time (mean ± σ): 432.1 ms ± 14.4 ms Range (min … max): 411.4 ms … 455.1 ms Summary 'python3 test2.py' ran 1.53 ± 0.12 times faster than 'python3 test1.py' ``` Contents of test1.py: ``` l1 = list(range(5_000_000)) l2 = [] while l1: l2.append(l1.pop()) print(len(l1), len(l2)) ``` Contents of test2.py: ``` def main(): l1 = list(range(5_000_000)) l2 = [] while l1: l2.append(l1.pop()) print(len(l1), len(l2)) main() ``` -- Leo -- https://mail.python.org/mailman/listinfo/python-list