Should I start a Python program with:
if__name__ == '__main__': some code...
And if so, why? I saw it many times but don't have a clue about it.
If your program is usable as a library but you also have a main program (e.g. to test the library), that construct lets others import the file as a library and not run your main program. If your program is named foo.py and you do "import foo" from another python file, __name__
evaluates to 'foo'
, but if you run "python foo.py" from the command line, __name__
evaluates to '__main__'
.
Note that you do need to insert a space between if and _, and indent the main program:
if __name__ == '__main__': main program here
A better pattern is this:
def main(): ... if __name__ == '__main__': main()
This allows your code to be invoked by someone who imported it, while also making programs such as pychecker and pylint work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With