Uddrag fra python-studiemanualen til protokollen.
Klienten kan udføre import- eller from-sætningen. Hvis modulet ikke indlæses, vil disse udsagn søge, kompilere og køre modulfilprogrammet. Den største forskel er, at import læser hele modulet, så det skal defineres, før dets variabelnavn kan læses; From vil få (eller kopiere) modulspecifikke variabelnavne.
import får et variabelnavn til at referere til hele modulobjektet, så modulets egenskaber skal opnås ud fra modulnavnet (f.eks. module1.printer). og from kopierer variabelnavnet til et andet scope, så den kan bruge det kopierede variabelnavn direkte i scriptet uden at skulle igennem et modul (f.eks. printer).
From Statement har potentiale til at bryde navnerum. Hvis du importerer variabler med from, og disse variabler tilfældigvis er duplikeret med eksisterende variable i scope, vil variablerne stille og roligt blive overskrevet. Dette er ikke et problem ved brug af import-sætninger, fordi indholdet skal hentes via modulnavnet. Men når man bruger from, er det ikke et stort problem i praksis, så længe du forstår og forventer, at det sker, især hvis du tydeligt oplister importvariablenavnene (f.eks. fra modulimport x, y, z).
Omvendt, når den bruges sammen med reload-kaldet, har from-sætningen et alvorligt problem, fordi navnet på den importerede variabel kan referere til en tidligere version af objektet. Desuden kan formen fra modulimport * faktisk bryde navnerummet og gøre variabelnavne svære at forstå, især når man importerer mere end én fil.
Et mere pragmatisk forslag er, at simple moduler generelt har en tendens til at bruge import frem for from. De fleste from-sætninger bruges til eksplicit at opregne de ønskede variabler og er begrænset til kun at bruge formen from * én gang pr. fil. På denne måde kan ethvert udefineret variabelnavn betragtes som eksisterende i modulet, der refereres fra *. Du er virkelig nødt til at bruge import, når du skal bruge den samme variabelnavn, der er defineret i to forskellige moduler, og i så fald kan du ikke bruge from.
Jeg har talt meget, jeg ved ikke, hvad jeg skal sige, lad os tale kort om det.
- import Modul # Introducer moduler
- fra modulimport Andet # Indfør klasser, funktioner eller variable i modulet
- fra Modulimport * # Introducer alle 'offentlige' medlemmer i modulet
På almindelige måder:
Importer en klasse #把整个一班的学生引入了进来
fra en gruppe importerede Xiao Wang #只把一般的小王引入了进来
For eksempel:
Tidspakken er et eksempel, og følgende to skrivemetoder er de samme, som følger:
|