[Tutor] What is `if __name__ == "__main__"` for?

Hilton Fernandes hgfernan at gmail.com
Fri May 20 14:32:31 CEST 2011


Hi, Ganesh !

An important use of this feature is the so-called modular testing, aka
unit testing. I mean: that way you can provide functionality in your
module to test it independently of any application it may be contained
in.

Unit testing in general is easier and quicker to do than to test the
whole application in which any given module is contained, along with
probably lots of other modules.

The Wikipedia article Unit Testing, at
https://secure.wikimedia.org/wikipedia/en/wiki/Unit_testing

will make things clear.

All the best,
hilton

On Fri, May 20, 2011 at 8:31 AM, Christian Witts <cwitts at compuscan.co.za> wrote:
> On 2011/05/20 01:29 PM, Christian Witts wrote:
>>
>> On 2011/05/20 01:09 PM, Ganesh Kumar wrote:
>>>
>>> Hi Gurus,
>>>
>>> I am new python programming.. I see many programs
>>> if __name__ == '__main__':
>>> when I check __name__ always eq __main__.
>>> what purpose use these structure.. please guide me..
>>>
>>> -Ganesh
>>>
>>
>> If you execute the script directly ie. python script.py the __name__
>> will be __main__ but if you import it it's the name of the file.
>>
>> #first.py
>> print __name__
>>
>> #second.py
>> import first
>>
>> $ python first.py
>> __main__
>>
>> $ python second.py
>> first
>>
>
> Sorry, forgot to add before sending that the reason I use the `if __name__
> == '__main__'` structure is so that I can have a standalone application that
> has it's defined entry point and then if I want to reuse functions in the
> application I can import it without having to worry that it will execute the
> entire thing.
>
> --
> Christian Witts
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>


More information about the Tutor mailing list