Katkelma python-opiskeluoppaasta pöytäkirjaa varten.
Asiakas voi suorittaa tuonti- tai from-lauseen. Jos moduulia ei ladata, nämä lauseet etsivät, kääntävät ja suorittavat moduulitiedostoohjelman. Suurin ero on, että tuonti lukee koko moduulin, joten se täytyy määritellä ennen kuin muuttujan nimi voidaan lukea; From saa (tai kopioi) moduulikohtaisia muuttujien nimiä.
Import saa muuttujan nimen viittaamaan koko moduulin objektiin, joten moduulin ominaisuudet on saatava moduulin nimestä (esim. module1.printer). ja from kopioi muuttujan nimen toiseen scopeen, joten se voi käyttää kopioitua muuttujan nimeä suoraan skriptissä ilman moduulin (esim. tulostin) kautta.
From-lauseella on potentiaalia rikkoa nimiavaruuksia. Jos tuot muuttujia käyttäen from-toimintoa, ja nämä muuttujat sattuvat kopioimaan olemassa olevien muuttujien kanssa scopessa, muuttujat ylikirjoitetaan hiljaisesti. Tämä ei ole ongelma import-lauseita käytettäessä, koska sen sisältö täytyy saada moduulin nimestä. Kuitenkin, kun käytät from-menetelmää, tämä ei käytännössä ole iso ongelma, kunhan ymmärrät ja ennakoit tämän tapahtuvan, varsinkin jos listaat selkeästi tuontimuuttujien nimet (esim. moduulista tuonti x, y, z).
Toisaalta, kun sitä käytetään reload-kutsun kanssa, from-lauseella on vakava ongelma, koska tuotu muuttujan nimi voi viitata aiempaan versioon objektista. Lisäksi moduulin tuonnista -muoto * voi todella rikkoa nimiavaruuden ja tehdä muuttujien nimien ymmärtämisestä vaikeaa, erityisesti kun tuodaan useampi kuin yksi tiedosto.
Käytännöllisempi ehdotus on, että yksinkertaiset moduulit käyttävät yleensä importia eivätkä from-toimintoa. Suurin osa from-lauseista käytetään haluttujen muuttujien nimenomaiseen luettelemiseen, ja ne rajoittuvat käyttämään muotoa * vain kerran per tiedosto. Näin mikä tahansa määrittelemätön muuttujan nimi voidaan katsoa olevan olemassa moduulissa, johon viitataan *. Sinun täytyy oikeasti käyttää importia, kun sinun täytyy käyttää samaa muuttujan nimimuuttujaa, joka on määritelty kahdessa eri moduulissa, jolloin et voi käyttää from-toimintoa.
Puhuin paljon, en tiedä mitä sanoa, puhutaan siitä lyhyesti.
- tuo moduuli # Esittele moduulit
- moduulin tuonti Muut # Esittele luokkia, funktioita tai muuttujia moduuliin
- moduulin tuonnista * # Esittele kaikki 'julkiset' jäsenet moduulissa
Yksinkertaisesti sanottuna:
Tuo luokka #把整个一班的学生引入了进来
ryhmältä tuonti Xiao Wang #只把一般的小王引入了进来
Esimerkiksi:
Aikapaketti on esimerkki, ja seuraavat kaksi kirjoitusmenetelmää ovat samat, kuten seuraavat:
|