Utdrag ur python-studiemanualen för protokollet.
Klienten kan köra import- eller from-satsen. Om modulen inte laddas kommer dessa satser att söka, kompilera och köra modulfilprogrammet. Den största skillnaden är att import läser hela modulen, så den måste definieras innan dess variabelnamn kan läsas; från kommer att hämta (eller kopiera) modulspecifika variabelnamn.
import gör att ett variabelnamn refererar till hela modulobjektet, så modulens egenskaper måste erhållas genom modulnamnet (t.ex. module1.printer). och from kopierar variabelnamnet till ett annat scope, så att det kan använda det kopierade variabelnamnet direkt i skriptet utan att behöva gå igenom en modul (t.ex. skrivare).
From Statement har potential att bryta namnrymder. Om du importerar variabler med from, och dessa variabler råkar dupliceras med befintliga variabler i scope, kommer variablerna att skrivas över i tysthet. Detta är inget problem vid användning av importsatser, eftersom innehållet måste erhållas via modulnamnet. Men när man använder from är detta inte ett stort problem i praktiken, så länge du förstår och förutser att detta ska hända, särskilt om du tydligt listar importvariabelnamnen (t.ex. from module import x, y, z).
Å andra sidan, när den används med reload-anropet, har from-satsen ett allvarligt problem, eftersom det importerade variabelnamnet kan syfta på en tidigare version av objektet. Dessutom kan formuläret från modulimport * faktiskt bryta namnrymden och göra variabelnamn svåra att förstå, särskilt vid import av mer än en fil.
Ett mer pragmatiskt förslag är att enkla moduler generellt tenderar att använda import snarare än from. De flesta from-satser används för att explicit räkna upp önskade variabler och är begränsade till att använda formen från * endast en gång per fil. På så sätt kan vilket odefinierat variabelnamn som helst betraktas som existerande i modulen som refereras från *. Du måste verkligen använda import när du måste använda samma variabelnamnvariabel definierad i två olika moduler, i så fall kan du inte använda from.
Jag pratade mycket, jag vet inte vad jag ska säga, låt oss prata om det kort.
- import Modul # Introducera moduler
- från modulimport Övrigt # Introducera klasser, funktioner eller variabler i modulen
- från modulimport * # Introducera alla 'publika' medlemmar i modulen
På ett enkelt sätt:
importera en klass #把整个一班的学生引入了进来
från en importgrupp Xiao Wang #只把一般的小王引入了进来
Till exempel:
Tidspaketet är ett exempel, och följande två skrivmetoder är desamma, enligt följande:
|