Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13872|Antwoord: 1

[Communicatie] Python uit import en import in detail uitgelegd

[Link kopiëren]
Geplaatst op 25-04-2018 11:20:35 | | | |
Fragment uit het python-studiehandboek voor de opname.

De client kan de import of from instructie uitvoeren. Als de module niet wordt geladen, zullen deze statements het modulebestandprogramma zoeken, compileren en uitvoeren. Het belangrijkste verschil is dat import de hele module leest, dus deze moet worden gedefinieerd voordat de variabelenaam gelezen kan worden; From zal module-specifieke variabelennamen ophalen (of kopiëren).

import zorgt ervoor dat een variabelennaam verwijst naar het gehele moduleobject, dus de eigenschappen van de module moeten worden verkregen via de modulenaam (bijv. module1.printer). en From kopieert de variabelenaam naar een andere scope, zodat de gekopieerde variabelnaam direct in het script kan worden gebruikt zonder door een module te gaan (bijvoorbeeld printer).

From Statement kan naamruimtes doorbreken. Als je variabelen importeert met from en die variabelen worden gedupliceerd met bestaande variabelen in scope, worden de variabelen stilletjes overschreven. Dit is geen probleem bij het gebruik van import-instructies, omdat de inhoud ervan via de modulenaam moet worden verkregen. Bij gebruik van from is dit in de praktijk echter geen groot probleem, zolang je dit begrijpt en verwacht, vooral als je duidelijk de importvariabelenamen vermeldt (bijvoorbeeld from module import x, y, z).

Aan de andere kant, wanneer deze wordt gebruikt met de reload-aanroep, heeft de from-instructie een ernstig probleem, omdat de geïmporteerde variabelenaam kan verwijzen naar een eerdere versie van het object. Bovendien kan het formulier uit module-import * inderdaad de naamruimte breken en variabelenamen moeilijk te begrijpen maken, vooral bij het importeren van meer dan één bestand.

Een meer pragmatische suggestie is dat eenvoudige modules over het algemeen importeren in plaats van from gebruiken. De meeste from-statements worden gebruikt om expliciet de gewenste variabelen op te sommen, en zijn beperkt tot het gebruik van de vorm from * slechts één keer per bestand. Op deze manier kan elke ongedefinieerde variabelenaam worden beschouwd als bestaand in de module waarnaar wordt verwezen vanuit *. Je moet echt importeren als je dezelfde variabelenaamvariabele moet gebruiken die in twee verschillende modules is gedefinieerd, in dat geval kun je from niet gebruiken.

Ik heb veel gepraat, ik weet niet wat ik moet zeggen, laten we het er kort over hebben.

  • import Module # Introduceer modules
  • van moduleimport Overig # Introduceer klassen, functies of variabelen in de module
  • van Moduleimport * # Introduceer alle 'publieke' leden in de module


In gewone taal:

Importeer een klasse #把整个一班的学生引入了进来
van een groep importen Xiao Wang #只把一般的小王引入了进来

Bijvoorbeeld:

Het tijdpakket is een voorbeeld, en de volgende twee schrijfmethoden zijn hetzelfde, als volgt:








Vorig:Hoe gebruik je een functie in een python-pakket
Volgend:HP Laptop & Desktop Ghost Windows7 32&64 Sea Drive Edition v201801
 Huisbaas| Geplaatst op 25-04-2018 11:22:51 |
Import Datetime is om het volledige Datetime-pakket te introduceren; als je de Datetime-klasse in het Datetime-pakket gebruikt, moet je de modulenaam-kwalificatie toevoegen.



Als je de modulenaam-kwalificaat niet toevoegt, verschijnt er een foutmelding: TypeError: 'module' object is niet aanroepbaar \ AttribuutFout: 'module' object heeft geen attribuut 'now'



Vanaf Datetime wordt Datetime alleen geïntroduceerd in de Datetime-klasse in het Datetime-pakket, en het is niet nodig om modulenaam-kwalificaties toe te voegen bij gebruik.



Samenvatting: Er zijn twee manieren om modules in Python te importeren: modules importeren en vanuit module-import, het verschil is dat de eerste vereist dat de modulenaam wordt toegevoegd bij het gebruik van alle geïmporteerde dingen, terwijl de tweede dat niet doet.

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com