sys — järjestelmäkohtaiset funktiot¶
Tämä moduuli tarjoaa pääsyn tulkkikohtaisiin muuttujiin ja funktioihin, kuten komentorivin argumentteihin, moduulien hakupolkuun, vakiovirtoihin sekä tietoihin käynnissä olevasta toteutuksesta.
Funktiot¶
- sys.exit(retval: object = 0, /) NoReturn¶
Lopeta nykyinen ohjelma annetulla poistumiskoodilla. Tämä funktio nostaa pohjimmiltaan
SystemExit-poikkeuksen. Jos argumentti annetaan, sen arvo välitetään argumenttinaSystemExit-poikkeukselle.OpenMV Cam -laitteessa käsittelemätön
SystemExitaiheuttaa tällä hetkellä MicroPythonin Pehmeä nollaus-toiminnon.
- sys.atexit(func: Callable[[], None] | None) Callable[[], None] | None¶
Rekisteröi func kutsuttavaksi lopetuksen yhteydessä. func-arvon on oltava kutsuttava, joka ei ota argumentteja, tai
Nonepoistaakseen kutsun käytöstä.atexit-funktio palauttaa tämän funktion aiemmin asettaman arvon, joka on aluksiNone.Ero CPythoniin
Tämä funktio on MicroPython-laajennus, jonka tarkoituksena on tarjota samankaltainen toiminnallisuus kuin CPythonin
atexit-moduulilla.
- sys.print_exception(exc: BaseException, file: Any = sys.stdout, /) None¶
Tulosta poikkeus ja sen jäljitys (traceback) tiedostonkaltaiseen objektiin file (tai oletuksena
sys.stdout).Ero CPythoniin
Tämä on yksinkertaistettu versio CPythonin
traceback-moduulissa esiintyvästä funktiosta. Toisin kuintraceback.print_exception(), tämä funktio ottaa pelkän poikkeuksen arvon poikkeuksen tyypin, arvon ja jäljitysobjektin sijaan; file-argumentin tulisi olla sijaintiin perustuva; muita argumentteja ei tueta. CPython-yhteensopivatraceback-moduuli löytyy paketistamicropython-lib.
- sys.settrace(tracefunc: Callable | None) None¶
Ota tavukoodin suorituksen jäljitys käyttöön. Lisätietoja löytyy CPython-dokumentaatiosta.
Tämä funktio ei ole käytettävissä OpenMV Cam -laitteessa. Se on oletuksena poissa käytöstä, koska se hidastaa koodin suoritusta; sen käyttöönotto edellyttää mukautetun laiteohjelmiston rakentamista.
Vakiot¶
- sys.implementation: object¶
Objekti, joka sisältää tietoja nykyisestä Python-toteutuksesta. MicroPythonissa sillä on seuraavat attribuutit:
name - merkkijono ”micropython”
version - monikko (major, minor, micro, releaselevel), esim. (1, 22, 0, ’’)
_machine - taustalla olevaa laitetta kuvaava merkkijono
_mpy - tuettu mpy-tiedostomuodon versio (valinnainen attribuutti)
_build - merkkijono, joka voi auttaa tunnistamaan kokoonpanon, jolla MicroPython rakennettiin
_thread - valinnainen merkkijonoattribuutti, joka on olemassa, jos kohteessa on säikeistys, ja on joko ”GIL” tai ”unsafe”
Tämä objekti on suositeltu tapa erottaa MicroPython muista Python-toteutuksista (huomaa, että se ei välttämättä silti ole olemassa hyvin minimaalisissa porteissa).
Versiosta 1.22.0-preview alkaen neljäs solmu releaselevel arvossa implementation.version on joko tyhjä merkkijono tai
"preview"._build-merkintä lisättiin versiossa 1.25.0, ja se on yhdysmerkein eroteltu joukko elementtejä. Uusia elementtejä voidaan lisätä loppuun tulevaisuudessa, joten tähän kenttään kannattaa päästä käsiksi käyttämällä
sys.implementation._build.split("-"). Tällä hetkellä käytössä olevat elementit ovat:OpenMV Cam -laitteessa ensimmäinen elementti on kortin nimi ja toinen elementti (jos läsnä) on kortin variantti.
_thread-merkintä lisättiin versiossa 1.26.0, ja jos se on olemassa, kohteessa on
_thread-moduuli. Jos kohde ottaa käyttöön GIL:n (global interpreter lock), tämä attribuutti on"GIL". Muuten attribuutti on"unsafe", jolloin kohteessa on säikeistys mutta GIL ei ole käytössä, ja säikeiden kesken jaetut muutettavat Python-objektit (kutenbytearray,listjadict) on suojattava nimenomaisesti lukoilla, kuten_thread.allocate_lock.Ero CPythoniin
CPython edellyttää tältä objektilta enemmän attribuutteja, mutta MicroPythonissa on toteutettu todellinen hyödyllinen vähimmäismäärä.
- sys.maxsize: int¶
Suurin arvo, jonka natiivi kokonaislukutyyppi voi sisältää nykyisellä alustalla, tai suurin MicroPythonin kokonaislukutyypin esittämä arvo, jos se on pienempi kuin alustan enimmäisarvo (näin on MicroPython-porteissa, joissa ei ole long int -tukea).
Tämä attribuutti on hyödyllinen alustan ”bittisyyden” (32-bittinen vs. 64-bittinen jne.) tunnistamiseen. On suositeltavaa olla vertaamatta tätä attribuuttia suoraan johonkin arvoon, vaan sen sijaan laskea siinä olevien bittien määrä:
bits = 0 v = sys.maxsize while v: bits += 1 v >>= 1 if bits > 32: # 64-bit (or more) platform ... else: # 32-bit (or less) platform # Note that on 32-bit platform, value of bits may be less than 32 # (e.g. 31) due to peculiarities described above, so use "> 16", # "> 32", "> 64" style of comparisons.
- sys.modules: dict¶
Sanakirja ladatuista moduuleista. OpenMV Cam -laitteessa tämä ei sisällä sisäänrakennettuja moduuleja.
- sys.path: list[str]¶
Muutettava lista hakemistoista, joista tuotuja moduuleja etsitään.
Ero CPythoniin
MicroPythonissa merkintä, jonka arvo on
".frozen", osoittaa, että tuonnin tulisi etsiä jäädytettyjä moduuleja siinä kohdassa hakua. Jos jäädytettyä moduulia ei löydy, haku ei etsi hakemistoa nimeltä.frozen, vaan se jatkaa seuraavalla merkinnällä listassasys.path.
- sys.platform: str¶
Alusta, jolla MicroPython on käynnissä. Tämä on portti- tai korttikohtainen merkkijono – esimerkiksi
"mimxrt"OpenMV RT1060 -laitteessa ja"alif"OpenMV AE3 -laitteessa (jotkin vanhemmat OpenMV Camit raportoivat mallikohtaisen merkkijonon, kuten"OpenMV4-H7"). Tarkistaaksesi, onko ohjelmasi käynnissä MicroPythonissa (toisen Python-toteutuksen sijaan), käytä sen sijaansys.implementation.
- sys.ps1: str¶
Muutettava attribuutti, joka sisältää ensisijaisessa REPL-kehotteessa käytettävän merkkijonon. Oletus antaa Pythonin vakiokehotteen
>>>. Katso myössys.ps2jatkokehotetta varten.
- sys.ps2: str¶
Muutettava attribuutti, joka sisältää REPL-jatkokehotteessa käytettävän merkkijonon. Oletus antaa Pythonin vakiokehotteen
.... Katso myössys.ps1ensisijaista kehotetta varten.
- sys.tracebacklimit: int¶
Muutettava attribuutti, joka sisältää kokonaislukuarvon, joka on poikkeukseen tallennettavien jäljitysmerkintöjen enimmäismäärä. Aseta arvoon 0 poistaaksesi jäljitysten lisäämisen käytöstä. Oletusarvo on 1000.
Huomaa: tämä attribuutti ei ole käytettävissä OpenMV Cam -laitteessa.