Pourquoi if__name__=='__main__' enPython?
Thisentrywaspostedin Programmation andtagged python on22/09/2012bySam
if__name__=='__main__' estununidiomequ’onvoitsouventdanslesscriptsPython.
Aquoisert-il?
Contrairementàd’autreslangagescommeleC,leJavaouleC#,Pythonn’apasdefonctionouméthode main() .Quandonlanceun
script,toutlescriptestexécutedanstouslescas,etaucunefonctionn’estappeléeautomatiquement.
Normalementc’estplutôtunebonnechose.Expliciteisbetterthanimplicit,toutça.
Maiscelaposeunproblèmequandonaunscriptquicontientducodequel’onsouhaiteexécuterquandonlancelescript
directement,maispasquandonl’importedansunautrescript.
Parexemple,unscriptegouts.pyquinefaitriend’intéressant(maisquilefaitvachementbien):
Ainsi,sionfait pythonegouts.py ,çavalancer tortues() maispassionfait importegout dansunautrescript.
Commentçamarche?
C’estuneconditiontoutàfaitordinaire,onpeutmettredes if n’importeoùdansducodePython.
Laseuleastuceconsisteenl’existencedelavariable __name__ quiestunevariableautomatiquementcrééeparPython,toujours
disponible,n’importeoù,danstouslesscripts.
Cettevariablecontientlenomduscriptcourantsionimportelescript.Ainsi,dansn’importequelcode,onpeutvérifieroùonest.
Maissilescriptestlescriptprincipal,alors __name__ necontientpaslenomduscript,ilcontientlachaîne __main__ (oui,c’est
bizarreavecdeuxunderscores,maisc’estunechaînenormale).
Donconditjuste:sicecodeestexécutéentantquescriptprincipal(appelédirectementavecPythonetpasimporté),alorsexécuter
cettefonction.
Partager:
5thoughtson“Pourquoi if__name__=='__main__' enPython
?”
✒Leaveacomment
Youremailaddresswillnotbepublished.Requiredfieldsaremarked*
Name*
Email*
Website
Comment
YoumayusetheseHTMLtagsandattributes: <ahref=""title=""><abbrtitle=""><acronymtitle=""><b><blockquotecite=""><cite><code>
<deldatetime=""><em><i><qcite=""><strike><strong>
Notifymeoffollow-upcommentsbyemail.
Notifymeofnewpostsbyemail.
DesquestionsPythonsansrapportavecl'article?Posez-lessurIndexError.
Horsdublog
Pagedecontact
@sam_et_maxsurtweeter
NostweetsenRSS
Forkme,I’mfamous(github)
Touslestextesdeceblog,saufsignalementcontraire,
sontsouslicencecreativecommon3.0unported.Toiaussi,trouveunarticle
obsolètesurnotreblog
June2015(2)
May2015(12)
April2015(13)
March2015(8)
February2015(4)
January2015(21)
December2014(24)
November2014(6)
October2014(18)
September2014(10)
August2014(5)
July2014(11)
June2014(25)
Email
More
desfrenes
22/09/2012at19:11
etenphp:http://www.desfrenes.com/blog/post/python-wannabe/
Sam Postauthor
23/09/2012at00:36
Dommagequetuaiarrêtéceblog,jel’aimaisbien.
mouarf
28/11/2012at18:46
Pourlemomentc’estmoil’idiome.
Jevaistâcherdenepaslerester:D
Sam Postauthor
28/11/2012at19:28
mouarf,dirais-je
Léo
20/06/2014at23:12
superpratiquepourcréerdeslibsetlestesters!onpeutsefairedespetitsscriptsdetestgraceàcemain
!
TéléchargercettepageenPDF
Souscrireànosconneries
Entrezvotreadressemailetvous
recevrezunenotificationàchaque
nouvelarticle.
Join506othersubscribers
TagCloud
0binangularjsautobahnbashbitcoinblog
cachecomprehension-listscssculdecorator
djangoencodinggithtmlhttpimport
ipythoniterablejavascriptjquerylambda
linuxmetamysqlnginxnsfwpippoo
pythonpython3redisrubyserver
shellsshsublimetexttwitterubuntuunittests
unpackingvirtualenvwampwindowsyield
Envoyezdessioux
Onadooooorelesbitcoins:
19zAHPPuce4BAhsdy9KaFwVLurEJXMhMAn
Nosprojets
Multiboards–l’actugeekfrenune
page
›
0bin–lepastebinchiffré›
Allthatcounts–compteurpourjeux›
Djangoquicky–quickviewsfor
Django
›
VizHash.js–Hashvisuels›
Codedesarticlesdublog›
›
›
›
›
›
›
›
›
›
›
›
›
›
5
Ducode,ducul
Prog AdminSys Philo&culture Cul Cours&tutos Multiboards
VeillePythonFr QuestionsPython